[SQL ] 群组 移除重复资料

楼主: Falconeye (未识绮罗香)   2014-06-19 19:49:29
数据库名称:MSSQL
数据库版本:2012
内容/问题描述:
table长这样:
code tag var1 var2 ...
001 c1 ...
002 c1 ...
001 c2 ...
003 c2 ...
002 c3 ...
004 c3 ...
005 c4 ...
006 c4 ...
现在情形是 根据不同条件,tag有不同值,tag值相同的资料为一组
以上表为例,其实001 002 003 004 是同一组的
现在要产生一新表,要移除重复资料,并且同组的要放在一起,并命名一个新的tag值
code tag var1 var2 ...
001 a1
002 a1
003 a1
004 a1
005 c4
006 c4
小弟太弱,想好久了,因此来请教高手如何达成
谢谢
作者: bohei (run and fall)   2014-06-19 20:07:00
"tag值相同的为一组",你的例子001 002 003 004没有完全一样的tag呀嗯...大概懂意思了..没事~
楼主: Falconeye (未识绮罗香)   2014-06-19 20:14:00
是的 1跟2一组同时1跟3一组 所以123为同组
作者: scpisces (失败的勇气。)   2014-06-19 23:18:00
我会这样下...;with Cte_List(code,tag)as( select code,(case when code in ('001','002','003','004')then 'a1' else tag end) from TabeName)insert into NewTableselect distinct code,tag from Cte_List如果实际上有更多像 001 002 003 004完全没关联的case就要下很多了......

Links booklink

Contact Us: admin [ a t ] ucptt.com