gpt4 book ai didi

sql - 如何使用 SQL Server 连接选择中的所有列

转载 作者:行者123 更新时间:2023-12-02 21:55:53 25 4
gpt4 key购买 nike

我需要我的选择有这样的模式:

 SELECT '<text> ' + tbl.* + ' </text>' FROM table tbl;

理想的解决方案是将所有列用逗号分隔以获得该输出:

具有两列的表 1 的 SQL 结果:

'<text>col1, col2</text>'

具有三列的表 2 的 SQL 结果:

'<text>col1, col2, col3</text>' 

我尝试使用 CONCAT(...) 函数,如下所示:

SELECT CONCAT('<text>', tbl.*, '</text>')
FROM table2 tbl

但我知道它并不那么简单,因为列数可变。

有什么简单的解决方案可以解决这个问题吗?

我使用的是 SQL Server 2008 R2。

最佳答案

给定表名的任意数量的列;如果您需要用 <text> 包裹列名称

DECLARE @s VARCHAR(500)

SELECT @s = ISNULL(@s+', ','') + c.name
FROM sys.all_columns c join sys.tables t
ON c.object_id = t.object_id
WHERE t.name = 'YourTableName'

SELECT '<text>' + @s + '</text>'

SQL Fiddle此处示例

-- RESULTS 
<text>col1, col2, col3,...</text>

如果您需要使用 <text> 选择查询结果集包装然后;

SELECT @S =  ISNULL( @S+ ')' +'+'',''+ ','') + 'convert(varchar(50), ' + c.name    FROM 
sys.all_columns c join sys.tables t
ON c.object_id = t.object_id
WHERE t.name = 'YourTableName'


EXEC( 'SELECT ''<text>''+' + @s + ')+' + '''</text>'' FROM YourTableName')

SQL Fiddle此处示例

--RESULTS
<text>c1r1,c2r1,c3r1,...</text>
<text>c1r2,c2r2,c3r2,...</text>
<text>c1r3,c2r3,c3r3,...</text>

关于sql - 如何使用 SQL Server 连接选择中的所有列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13761337/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com