小统计,来试试!

xiangyu120 2009-06-12 02:38:13
有一个列 值 12312312,adfadfa,567567,gjghj,我想统计包含1 ,a, g 的行数各有多少个 ? 怎么统计 ?
...全文
43 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
JonasFeng 2009-06-12
  • 打赏
  • 举报
回复
SELECT '1' AS FLAG ,COUNT(1) AS 统计
FROM LI
WHERE CHARINDEX('1',COL1) > 0
Union all
SELECT 'a' AS FLAG ,COUNT(1) AS 统计
FROM LI
WHERE CHARINDEX('a',COL1) > 0
union all
SELECT 'g' AS FLAG ,COUNT(1) AS 统计
FROM LI
WHERE CHARINDEX('g',COL1) > 0
jia_guijun 2009-06-12
  • 打赏
  • 举报
回复
发快了。
[Quote=引用 3 楼 jia_guijun 的回复:]
SQL codeselect[1]=casewhencharindex('1',col)>0then1else0end,[a]=casewhencharindex('a',col)>0then1else0end,[g]=casewhencharindex('g',col)>0then1else0endfromtb

[/Quote]

下边的:

select [1]=sum(case when charindex('1',col)>0 then 1 else 0 end),
[a]=sum(case when charindex('a',col)>0 then 1 else 0 end),
[g]=sum(case when charindex('g',col)>0 then 1 else 0 end)
from tb
--小F-- 2009-06-12
  • 打赏
  • 举报
回复
..参考 2.3楼
jia_guijun 2009-06-12
  • 打赏
  • 举报
回复
select [1]=case when charindex('1',col)>0 then 1 else 0 end,
[a]=case when charindex('a',col)>0 then 1 else 0 end,
[g]=case when charindex('g',col)>0 then 1 else 0 end
from tb

百年树人 2009-06-12
  • 打赏
  • 举报
回复
select 
sum(case when charindex('1',列)>0 then 1 else 0 end) as [包含1的行数],
sum(case when charindex('a',列)>0 then 1 else 0 end) as [包含a的行数],
sum(case when charindex('g',列)>0 then 1 else 0 end) as [包含g的行数]
from
tb
lgx0914 2009-06-12
  • 打赏
  • 举报
回复
--得到一个字符串在另一个字符串中出现的次数
create function f_getcharcount(
@str varchar(8000),
@chr varchar(20)
) returns int
as
begin
declare @re int,@i int
select @re=0,@i=charindex(@chr,@str)+1
while @i>1
select @re=@re+1
,@str=substring(@str,@i,8000)
,@i=charindex(@chr,@str)+1
return(@re)
end
go

--调用示例
select dbo.f_getcharcount('aadddbbbbad','ad')

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧