我如何计算每条记录中的重复符号

时间:2016-07-08 01:15:39

标签: sql

如果我想在我的数据库(有10,000行)的每一行中计算(x),显示在下面

    data 
@ REAMS  X PALLETSDIMENSION (WXLXH) :    " X   " X  "
@ 160 REAMS x 40 PALLETS1 CARTON = 5 REAMS
@ 5 REAMS x 15,360 CARTONSDIMENSION (WXLXH): 9"x13"x13"

我希望计数结果是

     data                                                        count x
@ REAMS  X PALLETSDIMENSION (WXLXH) :    " X   " X  "                5
@ 160 REAMS x 40 PALLETS1 CARTON = 5 REAMS                           1
@ 5 REAMS x 15,360 CARTONSDIMENSION (WXLXH): 9"x13"x13"              5

无论如何如何编写获取x的计数数的代码?

2 个答案:

答案 0 :(得分:1)

您可以使用字符串长度的差异来计算字符串中特定字母的数量:

select length(data) - length(replace(lower(data), 'x', '')) as num_xs

但是,对于第一行和最后一行,这将返回“4”,而不是3.因此,我不确定您真正想要的计算。

注意:在某些数据库中,length()拼写为len()

答案 1 :(得分:0)

DECLARE @temp AS VARCHAR(MAX) = '@ 5 REAMS x 15,360 CARTONSDIMENSION (WXLXH): 9"x13"x13"'
    ,@occuranceCountForCharacter CHAR(1) = 'X'

SELECT LEN(@temp) - LEN(REPLACE(@temp, @occuranceCountForCharacter, '')) AS CharCount