• 主页
  • 基础类
  • 应用实例
  • 新技术前沿

求SQL语句

look_007 2010-08-23 10:02:53
rq js
2010-08-20 333333333333333333333333330000000000111111111

请问有没有可以统计出JS里有多少个3,多少个0,多少个1。0是从第几位开始的。1又是从第几位开始的。

谢谢
...全文
58 点赞 收藏 6
写回复
6 条回复
蓝色风影 2010年08月23日
学习了...
回复 点赞
lcqtgb 2010年08月23日
上面的应该那个位置不会对。。。。replace都搞光字符了。。能正确的找出字符所出现的位置呢。。借用上楼的兄弟代码一用
select rq,
charindex('0',js) as [0的开始位置],
charindex('1',js) as [1的开始位置],
len(left(js,charindex('0',js)-1)) as [3的个数],
len(replace(replace(js,'3',''),'1','')) as [0的个数],
len(replace(replace(js,'3',''),'0','')) as [1的个数]

from tb
回复 点赞
cjzm83 2010年08月23日

select rq,
len(left(js,charindex('0',js)-1)) as [3的个数],
len(replace(replace(js,'3',''),'1','')) as [0的个数],
charindex('0',js) as [0的开始位置],
len(replace(replace(js,'3',''),'0','')) as [1的个数],
charindex('1',js) as [1的开始位置]
from tb
回复 点赞
playwarcraft 2010年08月23日
3,0,1 都是连续的吗?

declare @t table(rq datetime,js varchar(100))
insert into @t select '2010-8-20','3333333333333330000000000111111111'

select convert(char(10),rq,120) as rq,
len_3 =len(js)-len(replace(js,'3','')),
len_0 =len(js)-len(replace(js,'0','')),
begin_0 = charindex('0',js),
len_1=len(js)-len(replace(js,'1','')),
begin_1= charindex('1',js)
from @t
回复 点赞
hao1hao2hao3 2010年08月23日

select len(js)-len(replace(js,'3','')) as '3的个数',len(js)-len(replace(js,'0','')) as '0的个数',len(js)-len(replace(js,'1','')) as '1的个数',charindex('0',js,1) as '0开始的位置',charindex('1',js,1) as '1开始的位置' from tb

回复 点赞
hao1hao2hao3 2010年08月23日

declare @s varchar(200)
set @s = '333333333333333333333333330000000000111111111'
select len(@s)-len(replace(@s,'3','')) as '3的个数',len(@s)-len(replace(@s,'0','')) as '0的个数',len(@s)-len(replace(@s,'1','')) as '1的个数',charindex('0',@s,1) as '0开始的位置',charindex('1',@s,1) as '1开始的位置'

自己换成表中的字段就行了。
回复 点赞
发动态
发帖子
MS-SQL Server
创建于2007-09-28

1.4w+

社区成员

25.3w+

社区内容

MS-SQL Server相关内容讨论专区
社区公告
暂无公告