计算数据集中的“//”数量(SQL Server)

时间:2018-04-18 09:23:20

标签: sql sql-server string

我有一个与SQL Server查询相关的问题。 我想在数据集中计算所有'//'。数据集包含代码。通过计算'//'我想将它声明为注释,如果每个行包含至少一次字符串'//'。

实际上我已计算数据集中'//'的数量,但我不知道应该如何继续。

select col1, col2, LEN(col3) - LEN(REPLACE(col3, '//', '' )) AS col3counter
from #tmp

2 个答案:

答案 0 :(得分:0)

你将得到两倍的数量。所以除以2或:

select col1, col2,
       ( LEN(col3) - LEN(REPLACE(col3, '//', 'x' )) ) AS col3counter
from #tmp

答案 1 :(得分:0)

很抱歉双重发布,但我自己解决了这个问题:-)。代码是......

select col1, col2, col3, col4,
    LEN(col3) - LEN(REPLACE(col3, '//', ' ' )) AS col3commentcount,
    LEN(col3) - LEN(Replace(col3,(char(13)+char(10)),' '))+1 as  col3rowcount,
    LEN(col4) - LEN(REPLACE(col4, '//', ' ')) AS col4commentcount,
    LEN(col4) - LEN(REPLACE(col4,(char(13)+char(10)),' '))+1 as col4rowcount
from #tmp
where LEN(col3) - LEN(REPLACE(col3, '//', ' ' )) = 
  LEN(col3) - LEN(Replace(col3,(char(13)+char(10)),' '))+1 OR
  LEN(col4) - LEN(REPLACE(col4, '//', ' ')) =
  LEN(col4) - LEN(REPLACE(col4,(char(13)+char(10)),' '))+1
  and idcheck=0  
order by col1