Interbase SQL Select Group By Records 用逗号分成一行
Interbase SQL Select Group By Records into one row with commas
我有一个简单的 Interbase SQL Select Group By 查询:
Select STRINGNAME from STRINGLIST
Group by STRINGNAME
这个查询return这个结果:
STRINGNAME
FirstString
SecondString
ThirdString
等等
我想让我的查询 return 一行以任何顺序执行此操作:
FirstString,SecondString,ThirdString
或反转
ThirdString,SecondString,FirstString
这怎么可能?我在想一个程序,但也许还有另一种更简单的方法?
我自己找到了答案。谢谢
Firebird 和 Interbase 有一个 LIST() 聚合函数,它可以满足我的需要:
SELECT LIST(DISTINCT STRINGNAME, ',')
FROM STRINGLIST
这非常适用于 Interbase SQL 和 Firebird SQL
使用临时变量你可以这样做:-
declare @tmp varchar(max)
SET @tmp = ''
select @tmp = @tmp + STRINGNAME + ', ' from STRINGLIST Group by STRINGNAME
select @tmp
我有一个简单的 Interbase SQL Select Group By 查询:
Select STRINGNAME from STRINGLIST
Group by STRINGNAME
这个查询return这个结果:
STRINGNAME
FirstString
SecondString
ThirdString
等等
我想让我的查询 return 一行以任何顺序执行此操作:
FirstString,SecondString,ThirdString
或反转
ThirdString,SecondString,FirstString
这怎么可能?我在想一个程序,但也许还有另一种更简单的方法?
我自己找到了答案。谢谢
Firebird 和 Interbase 有一个 LIST() 聚合函数,它可以满足我的需要:
SELECT LIST(DISTINCT STRINGNAME, ',')
FROM STRINGLIST
这非常适用于 Interbase SQL 和 Firebird SQL
使用临时变量你可以这样做:-
declare @tmp varchar(max)
SET @tmp = ''
select @tmp = @tmp + STRINGNAME + ', ' from STRINGLIST Group by STRINGNAME
select @tmp