楼主中午才结帖,怎么又问同样的问题?http://community.csdn.net/Expert/topic/4987/4987852.xml?temp=.8763239

解决方案 »

  1.   

    不知道这个问题能不能通过写SQL实现
      

  2.   

    YiZhiNet(温馨提示------开帖请结帖) 
    刚才的那个帖子里的“班级编号”是互不重复的,现在的问题是“班级编号”有重复记录的
      

  3.   

    一样的,只不过连接时产生了重复行而已.用个DISTINCT即可.DECLARE @t TABLE(ID INT   , 班级编号 VARCHAR(100),  新闻编号 VARCHAR(10),发布日期 datetime)
    INSERT @t SELECT    1    , '|20|',    'aa','2005-5-5'
    UNION ALL SELECT    2   ,   '|20|34|'   ,    'bb','2006-5-4'
    UNION ALL SELECT    3  ,  '|32|',   'cc','2006-4-4'
    UNION ALL SELECT    4, '|21|34|','dd' ,'2006-4-6'DECLARE @s VARCHAR(1000)
    SELECT @s=ISNULL(@s,'') + 班级编号 FROM @t
    SELECT @s=REPLACE(@s,'||','|')
    SELEct @s=SUBSTRING(@s,2,LEN(@s)-2)
    SELECT @s
    SELECT DISTINCT ID,a.a 班级编号,新闻编号,发布日期
    FROM dbo.Split(@s,'|') a
    INNER JOIN @t b
    ON CHARINDEX('|'+a.a+'|',班级编号)>0
    /*
    1 20 aa 2005-05-05 00:00:00.000
    2 20 bb 2006-05-04 00:00:00.000
    2 34 bb 2006-05-04 00:00:00.000
    3 32 cc 2006-04-04 00:00:00.000
    4 21 dd 2006-04-06 00:00:00.000
    4 34 dd 2006-04-06 00:00:00.000
    */
      

  4.   

    谢谢大家了,可以了
    特别感谢fcuandy(老菜鸟) ,今天帮了我两次了,再次感谢!