在oracle的表里边,三个字段,abc,ab唯一,c可能对应多个ab,显示为多条记录: a b c1 a b c2 a b c3

我想使结果显示为一条记录,如a b c1c2c3,语句应该怎么写呢~

WITH tab AS
 (SELECT 'A' a,
         'B' b,
         'C1' c
    FROM dual
  UNION ALL
  SELECT 'A' a,
         'B' b,
         'C2' c
    FROM dual
  UNION ALL
  SELECT 'A' a,
         'B' b,
         'C3' c
    FROM dual) 
--
SELECT a,
       b,
       listagg(c) within GROUP(ORDER BY a, b)
  FROM tab
 GROUP BY a,
          b;
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-09-09
参考如下sql的写法:
SELECT (STUFF((
SELECT ', ' + StringValue
FROM 表名
WHERE 字段A= 'ab'
FOR XML PATH('')
), 1, 2, '')
) AS StringValue
相似回答
大家正在搜