在SQL中连接所有列值 [英] Concat all column values in sql
本文介绍了在SQL中连接所有列值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何将SQL查询返回的不同行中的所有列值合并为一个值?例如:
How to concat all column values from differenct rows returned from a sql query into one value? This is an example:
查询返回:
FOO
------
RES1
RES2
RES3
现在我想得到类似以下结果:
now I want to have a result like the following one:
FOOCONCAT
-----
RES1RES2RES3
有什么方法可以在sql中做到吗?
Are there any ways to do this in sql?
推荐答案
在 SQL Server
中:
SELECT col1 AS [text()]
FROM foo
FOR XML PATH ('')
在 MySQL
:
SELECT GROUP_CONCAT(col1 SEPARATOR '')
FROM foo
在 PostgreSQL
:
SELECT array_to_string
(
ARRAY
(
SELECT col1
FROM foo
), ''
)
在 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
这篇关于在SQL中连接所有列值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文