Firebird 2.1以后可用的LIST()函数(http://www.firebirdsql.org/refdocs/langrefupd21-aggrfunc-list.html)正是我所需要的。不幸的是,我坚持使用Firebird 1.5。经过一番搜索后,我找不到可以上班的替代方案。
基本上我想在Firebird 1.5中将一堆行聚合成逗号分隔的字符串。
答案 0 :(得分:0)
您可以使用此例程
sys.index_columns
用法示例(第一个参数是您的sql,它应该只返回一列):
create or alter procedure GETSTRFROMSQL
(
SQLSTR blob sub_type text,
SEPARATOR varchar(32)
)
returns
(
OUTSTR blob sub_type text
)
as
declare tmpstr blob sub_type text;
begin
outstr = '';
for execute statement sqlstr
into tmpstr do
begin
if (outstr = '')then
outstr = tmpstr;
else
outstr = outstr || separator || tmpstr;
end
suspend;
end
当然最好升级到2.5或3.0,但不幸的是在那些版本中没有可能按list()中的值排序,所以这个例程无论如何都很有用