连接select查询中的行(在Advantage Data Architect中)

时间:2014-12-22 10:57:50

标签: sql aggregate-functions string-concatenation advantage-database-server

如何在select查询中连接行? (在Advantage Data Architect中)

我尝试运行以下脚本:

第一个脚本:

declare @str string;
set @str = '';
select @str = @str + field_1 from my_table1

但是我得到的结果是所有行都包含" false",就像这张图片一样:

enter image description here

第二个脚本:

declare @str string;
select @str = coalesce(@str + ', ','') + field_1 from my_table1

这一次,所有行都是空的(注意:" my_table1"中的字段不为空)。

照片:

enter image description here

我尝试在Internet上搜索Advantage Data Architect的解决方案,但我找不到解决方案。

1 个答案:

答案 0 :(得分:1)

我假设您想要MySQL中的GROUP_CONCAT或Oracle / Postgres中的string_agg

通用算法类似于:

DECLARE @S STRING;

DECLARE CURSOR C AS 
SELECT
  CONVERT(field_1, SQL_CHAR) AS "val"
FROM 
  my_table1;

OPEN C;

WHILE FETCH C do
  -- Since @S is NULL for the first row this will ensure 
  -- that the result does not start with the separator.
  @S = COALESCE(@S + ', ' + C.val, C.val);
END;

CLOSE C;

SELECT @S;

A general function can be found on the ADS forum.

PS:这与splitting a string into separate rows相反。