-1

我有另一个问题组。

我的表中的值可以如下:

name1
name2
name1;name1
name1
name2;name2;name2

我需要结合这些值来获取该字段的计数。抱歉,这有点难以解释,但基本上我需要将一个值组合成一个总数,无论值是 'name1' 还是 'name1;name1' 还是 'name1;name1;name1' (可以重复任意次数)。所以结果是

name1  - 3 
name2  - 2

谢谢你。

4

2 回答 2

0

如果您的所有值都与您的示例中的值一样,请尝试以下操作:

select
    left(t.col, 5), count(*)
from <your table> as t
group by left(t.col, 5)
于 2013-09-04T17:48:29.983 回答
0

这允许不同名称的长度

DECLARE @STUFF AS TABLE
(MyField nvarchar(100))

INSERT INTO @Stuff VALUES ('fred;1234')
INSERT INTO @Stuff VALUES ('fred;fred')
INSERT INTO @Stuff VALUES ('bib;')
INSERT INTO @Stuff VALUES ('bob;')
INSERT INTO @Stuff VALUES ('bib;bib')
INSERT INTO @Stuff VALUES ('steve;steve')

/添加一个默认值;防止没有/的字段

UPDATE @STUFF  SET MyField = MyField + ';'

select
    left(t.myfield, charindex(';', T.myfield)), count(*)
from @Stuff as t
group by left(t.myfield, CHARINDEX(';', T.myfield))



UPDATE @STUFF  SET MyField = LEFT(MyField, LEN(MyField)-1)

/删除最后一个字符,即 ; 我们添加了/

于 2013-09-04T17:57:02.117 回答