sql分拆记录的问题
有一张表里面有个外键,根据这个外键分组得到每个对应的总数,但是现在这个表调整结构了,这个外键改成了可以存多个值,用逗号隔开的那种,请问如何用最少的改动统计出每个对应的总数。
以前的sql语句:
SELECT Receiver, IntentionCarType, COUNT(1) AS number FROM Flow
GROUP BY Receiver, IntentionCarType
现在IntentionCarType 可以存多个值逗号隔开,请大家给点提示,谢谢。
[解决办法]
给你看个查分的例子if not object_id('Tab') is null drop table TabGoCreate table Tab([Col1] int,[COl2] nvarchar(5))Insert Tabselect 1,N'a,b,c' union allselect 2,N'd,e' union allselect 3,N'f'GO--sql2005 或更高版本SELECT a.COl1 , Col2 = T.c.value('.' , 'nvarchar(100)')FROM ( SELECT Col1 , Col2= CONVERT( XML, '<v>'+ REPLACE (COl2 , ',' , '</v><v>')+ '</v>') FROM Tab ) aCROSS APPLY a.Col2.nodes('/v/text()') T (c)/*COl1 Col21 a1 b1 c2 d2 e3 f*/