如果统计出List of item_ID's] 这个列的无重复的每一项的次数类似 
I1--->6
I2--->7

解决方案 »

  1.   

    --先用这个分拆,然后select col , count(*) from (...) t  group by col/*
    标题:分拆列值1
    作者:爱新觉罗.毓华(十八年风雨,守得冰山雪莲花开)
    时间:2008-11-20
    地点:广东深圳
    描述有表tb, 如下:
    id          value
    ----------- -----------
    1           aa,bb
    2           aaa,bbb,ccc
    欲按id,分拆value列, 分拆后结果如下:
    id          value
    ----------- --------
    1           aa
    1           bb
    2           aaa
    2           bbb
    2           ccc
    */--1. 旧的解决方法(sql server 2000)
    SELECT TOP 8000 id = IDENTITY(int, 1, 1) INTO # FROM syscolumns a, syscolumns b SELECT A.id, SUBSTRING(A.[values], B.id, CHARINDEX(',', A.[values] + ',', B.id) - B.id)
    FROM tb A, # B
    WHERE SUBSTRING(',' + A.[values], B.id, 1) = ','DROP TABLE #--2. 新的解决方法(sql server 2005) 
    create table tb(id int,value varchar(30))
    insert into tb values(1,'aa,bb')
    insert into tb values(2,'aaa,bbb,ccc')
    go
    SELECT A.id, B.value
    FROM(
        SELECT id, [value] = CONVERT(xml,'<root><v>' + REPLACE([value], ',', '</v><v>') + '</v></root>') FROM tb
    )A
    OUTER APPLY(
        SELECT value = N.v.value('.', 'varchar(100)') FROM A.[value].nodes('/root/v') N(v)
    )BDROP TABLE tb/*
    id          value
    ----------- ------------------------------
    1           aa
    1           bb
    2           aaa
    2           bbb
    2           ccc(5 行受影响)
    */
      

  2.   

    還要split ?
    寫個存儲過程吧! 
      

  3.   

    那意思就是:我无论怎么样 都得先得出有那些元素?比如I1\I2\I3\I4 这样,然后存入临时表,然后在统计这个临时表的
    没一个记录,在AllElectronics 表里面出现的次数吗? 那这样我就得扫描2次数据库了
      

  4.   

    为什么sql查询分析器里面 能返回结果集,在程序里面调用缺不行!
      

  5.   

    create table AllElectronics(TID varchar(10),[List of item_ID's] varchar(500))
    insert AllElectronics select 'T100','I1,I2,I5'
    insert AllElectronics select 'T200','I2,I4'
    insert AllElectronics select 'T300','I2,I3'
    insert AllElectronics select 'T400','I1,I2,I4'
    insert AllElectronics select 'T500','I1,I3'
    insert AllElectronics select 'T600','I2,I3'
    insert AllElectronics select 'T700','I1,I3'
    insert AllElectronics select 'T800','I1,I2,I3,I5'
    insert AllElectronics select 'T900','I1,I2,I3'select * into # from AllElectronics
    alter table # alter column [List of item_ID's] varchar(8000)
    declare @s varchar(8000)
    update # set [List of item_ID's]=@s,@s=isnull(@s+',','')+[List of item_ID's]
    select substring(t.a,charindex(',',','+t.a,number),charindex(',',t.a+',',number)-charindex(',',','+t.a,number)) a,count(1) cnt
    from master..spt_values ,(select max([List of item_ID's]) a from #) t
    where type='p' and number>0
      and charindex(',',','+t.a,number)>0 
      and charindex(',',','+t.a,number)< charindex(',',t.a+',',number)
    group by substring(t.a,charindex(',',','+t.a,number),charindex(',',t.a+',',number)-charindex(',',','+t.a,number))drop table #,AllElectronics
    /*
    a      cnt
    ----   ----
    I1 6
    I2 7
    I3 6
    I4 2
    I5 2
    (5 行受影响)
    */