SELECT结果单行

时间:2019-06-24 08:37:21

标签: sql oracle string-aggregation

我试图显示表中所有列的名称,并在一行中用逗号分隔,然后将其保存在变量中。

哪种方法最好?

我有这样的东西:

ibx

结果是这样的:

iby

但是...我需要这种方式:

flds%nc * flds%nl

谢谢。

1 个答案:

答案 0 :(得分:-1)

您可以使用子字符串功能。请参阅下面的示例代码,了解如何将行连接为一行

select SUBSTRING
 (( 
    SELECT ', ' + s.Column_name
    FROM INFORMATION_SCHEMA.COLUMNS AS s
    WHERE TABLE_NAME = N'TBLACCESS'
    FOR XML PATH('')
 ), 2, 1000)

如果要保存在变量中。只需在子字符串中添加变量名称即可。

select @myvariable=SUBSTRING
 (( 
    SELECT ', ' + s.Column_name
    FROM INFORMATION_SCHEMA.COLUMNS AS s
    WHERE TABLE_NAME = N'TBLACCESS'
    FOR XML PATH('')
 ), 2, 1000)