当前位置: 代码迷 >> Oracle管理 >> SQL大师来,问个查询语句解决方法
  详细解决方案

SQL大师来,问个查询语句解决方法

热度:98   发布时间:2016-04-24 05:16:48.0
SQL大师来,问个查询语句
表结构和内容如下
Name--Age--NO--Remark
A--11--11--ABC
A--11--11--CCC
A--11--11--AAA
B--11--11--CCC
B--11--11--DDD
B--11--11--[NULL]
B--11--11--[NULL]
=======================================================
查询后的结果为
Name--Age--NO--Remark
A--11--11--ABC,CCC,CCC
B--11--11--CCC,DDD
B--11--11--[NULL]

就是前面三列数据重复的合并,后面一列不同的串起来。
重复的可能是2行,3行,或是更多行,求解。
补充一句,最后一列Remark会有NULL值,和前面是同样的处理方式,前三列合并,后面的就不用串起来了,还是写NUll

------解决方案--------------------
因为存在这样的资料,分组没有办法将NULL提出来
B--11--11--CCC
B--11--11--DDD
B--11--11--[NULL]
B--11--11--[NULL]
SQL code
WITH t AS (  SELECT 'A' name,'11' age,'11' no,'ABC' remark FROM dual   UNION ALL   SELECT 'A' name,'11' age,'11' no,'CCC' remark FROM dual  UNION ALL   SELECT 'A' name,'11' age,'11' no,'AAA' remark FROM dual  UNION ALL   SELECT 'B' name,'11' age,'11' no,'CCC' remark FROM dual  UNION ALL   SELECT 'B' name,'11' age,'11' no,'DDD' remark FROM dual  UNION ALL   SELECT 'B' name,'11' age,'11' no,NULL remark FROM dual  UNION ALL   SELECT 'B' name,'11' age,'11' no,NULL remark FROM dual )SELECT name,age,no,wm_concat(remark) FROM t GROUP BY name,age,no;
  相关解决方案