在SQL中连接所有列值 [英] Concat all column values in sql

查看:60
本文介绍了在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆