如何将从 sql 查询返回的不同行的所有列值合并为一个值?这是一个例子:
查询返回:
FOO
------
RES1
RES2
RES3
现在我想要得到如下结果:
FOOCONCAT
-----
RES1RES2RES3
有什么方法可以在sql中做到这一点吗?
In SQL Server
:
SELECT col1 AS [text()]
FROM foo
FOR XML PATH ('')
In MySQL
:
SELECT GROUP_CONCAT(col1 SEPARATOR '')
FROM foo
In PostgreSQL
:
SELECT array_to_string
(
ARRAY
(
SELECT col1
FROM foo
), ''
)
In Oracle
:
SELECT *
FROM (
SELECT col1, ROW_NUMBER() OVER(ORDER BY 1) AS rn
FROM foo
MODEL
DIMENSION BY
(rn)
MEASURES
(col1, col1 AS group_concat, 0 AS mark)
RULES UPDATE (
group_concat[rn > 1] = group_concat[CV() - 1] || col1[CV()],
mark[ANY] = PRESENTV(mark[CV() + 1], 0, 1)
)
)
WHERE mark = 1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)