ad_org
表格列id
& name
ad_org
ad_org_id | name
----------------------------------+-----------
357947E87C284935AD1D783CF6F099A1 | Spain
43D590B4814049C6B85C6545E8264E37 | Main
5EFF95EB540740A3B10510D9814EFAD5 | USA
2878085215E54C73A04D394BFD170733 | India
22669845D93A49A98932CE29AE02E0FD | Honkong
如何从上面的数据库
以这种方式输出所有名称(以1个字符串形式) Spain | Main | USA | India | Honkong
在1个选择语句中。
答案 0 :(得分:2)
使用string_agg
。
SELECT string_agg("name", ' | ') FROM thetable;
对于较旧的PostgreSQL,您必须使用array_agg
和array_to_string
:
SELECT array_to_string( array_agg("name"), ' | ') FROM thetable;
如果您想要特定订单,请将其放在汇总中,例如按字母顺序排列:
SELECT string_agg("name", ' | ' ORDER BY "name") FROM thetable;
答案 1 :(得分:0)
使用下面的代码
DECLARE @cols AS NVARCHAR(MAX), @query AS NVARCHAR(MAX)
选择@cols = STUFF((SELECT','+ QUOTENAME(ColumnName) 来自你的 按ColumnName,id分组 按ID排序 FOR XML PATH(''),TYPE ).value('。','NVARCHAR(MAX)') ,1,1, '')
设置@query ='SELECT'+ @cols +' ( 选择值ColumnName 来自你的 ) X 枢 ( MAX(值) for ColumnName in('+ @cols +') )p'
执行(@query)
答案 2 :(得分:0)
通过搜索得到它。
Equivalent to PostgreSQL array() / array_to_string() functions in Oracle 9i
select array_to_string(array(select name from ad_org), '|') as names;