如何在不使用'for xml'子句的情况下将sql结果列作为csv?

时间:2013-10-16 10:23:28

标签: sql hsqldb

我想要像

这样的表格中的数据
A B
- -
1 a
2 b
3 b

以此结果形式

A   B
--- -
1   a
2,3 b

但我在版本1.8中使用hypersonic并且找不到“for xml”-clause。

没有“for xml”的任何解决方案,例如Comma separated values in one column - SQL SERVER

1 个答案:

答案 0 :(得分:0)

SELECT 
  a
,   MAX( CASE seq WHEN 1 THEN (b) ELSE '' END )
  + MAX( CASE seq WHEN 2 THEN (', ' + b) ELSE '' END ) 
  + MAX( CASE seq WHEN 3 THEN (', ' + b) ELSE '' END ) 
  + MAX( CASE seq WHEN 4 THEN (', ..') ELSE '' END )
  AS b
FROM (SELECT 
        t1.a
      , t1.b
      , (SELECT COUNT(*) FROM t t2 WHERE t1.a = t2.a AND t2.b <= t1.b) AS seq 
      FROM t t1) AS temp
GROUP BY a