Cach&xE9;要列出的SQL列
您知道在一条SQL语句中创建以下结果集的方法吗 记录集:Cach&xE9;要列出的SQL列,sql,intersystems-cache,Sql,Intersystems Cache,您知道在一条SQL语句中创建以下结果集的方法吗 记录集: ID AC9 Value 1 11111111 A 2 11111111 B 3 11111111 C 4 11111111 D 5 22222222 B 6 22222222 C 7 22222222 D 8 22222222 E 9 22222222 F 10 22222222 G 结果集: AC9 M
ID AC9 Value
1 11111111 A
2 11111111 B
3 11111111 C
4 11111111 D
5 22222222 B
6 22222222 C
7 22222222 D
8 22222222 E
9 22222222 F
10 22222222 G
结果集:
AC9 MyValue
11111111 A,B,C,D
22222222 B,C,D,E,F,G
使用
list
函数,Cache有一种非常简单的方法来实现这一点
select distinct ac9, list(value %FOREACH(ac9))
from (select 1 as id, 11111111 as ac9, 'A' as value
union all select 2, 11111111, 'B'
union all select 3, 11111111, 'C'
union all select 4, 11111111, 'D'
union all select 5, 22222222, 'B'
union all select 6, 22222222, 'C'
union all select 7, 22222222, 'D'
union all select 8, 22222222, 'E'
union all select 9, 22222222, 'F'
union all select 10, 22222222, 'G') sub
还可以使用GROUP BY语句,而不是LIST()聚合中的%FOREACH函数:
SELECT AC9, LIST(Value) As MyValue FROM Source.Table GROUP BY AC9
虽然LIST()不是标准的,但由于聚合函数+分组配对,我认为查询的整体结构更容易理解。您的数据库是什么?