我有另一组问题。
我的表中的值可以如下:
name1
name2
name1;name1
name1
name2;name2;name2
我需要将这个值组合起来计算这些值。对不起,这有点难以解释,但基本上我需要合并为一个值是'name1'还是'name1; name1'或'name1; name1; name1'(可以重复任意次数)。所以结果将是
name1 - 3
name2 - 2
谢谢。
答案 0 :(得分:0)
如果您的所有值都与示例中的值相似,请尝试以下操作:
select
left(t.col, 5), count(*)
from <your table> as t
group by left(t.col, 5)
答案 1 :(得分: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)
/ 删除最后一个字符,即;我们添加了 /