Interbase SQL选择按记录分组,用逗号分隔一行

时间:2017-01-18 08:27:11

标签: sql select group-by interbase

我有一个简单的Interbase SQL Select Group By查询:

Select STRINGNAME from STRINGLIST
Group by STRINGNAME

此查询返回此结果:

STRINGNAME
FirstString
SecondString
ThirdString

等等。

我想让我的查询返回一行,以任何顺序执行此操作:

FirstString,SecondString,ThirdString

或倒置

ThirdString,SecondString,FirstString

怎么可能这样做?我在考虑一个程序,但也许还有另一种更简单的方法?

2 个答案:

答案 0 :(得分:1)

我自己找到了答案。感谢。

Firebird和Interbase有一个LIST()聚合函数,可以满足我的需要:

SELECT LIST(DISTINCT STRINGNAME, ',')
FROM STRINGLIST

这适用于Interbase SQL和Firebird SQL

答案 1 :(得分:0)

使用临时变量你可以这样做: -

declare @tmp varchar(max)
SET @tmp = ''
select @tmp = @tmp + STRINGNAME + ', ' from STRINGLIST Group by STRINGNAME
select @tmp