读书人

sql分拆记录的有关问题

发布时间: 2012-11-09 10:18:48 作者: rapoo

sql分拆记录的问题
有一张表里面有个外键,根据这个外键分组得到每个对应的总数,但是现在这个表调整结构了,这个外键改成了可以存多个值,用逗号隔开的那种,请问如何用最少的改动统计出每个对应的总数。
以前的sql语句:
SELECT Receiver, IntentionCarType, COUNT(1) AS number FROM Flow
GROUP BY Receiver, IntentionCarType
现在IntentionCarType 可以存多个值逗号隔开,请大家给点提示,谢谢。


[解决办法]

SQL code
给你看个查分的例子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*/ 

读书人网 >SQL Server

热点推荐