gpt4 book ai didi

sql - 是否可以在变量中设置选择语句的一部分

转载 作者:行者123 更新时间:2023-12-04 23:47:50 25 4
gpt4 key购买 nike

我有一个查询,其中 select 部分真的很长。我想把它分成几部分,特别是因为有些部分在那里出现了两次甚至更多次。

我想要的是如下内容:

Declare @SQLPart as varchar(1000)
Set @SQLPart = 'Field1,
case ... as Field2,'

Select ..., @SQLPart, ... From .....

不幸的是,这会导致错误消息。我也尝试了类似 EXEC(@SQLPart) 的方法,但当然这也不起作用。我将如何解决这个问题?

最佳答案

是的,动态 sql 和 sp_executesql :

CREATE TABLE ##Temp (Field1 int, Field2 int)

Declare @SQLPart nvarchar(1000)
Set @SQLPart = N'Field1, Field2 '

DECLARE @SQL nvarchar(1000) = N'SELECT ' + @SQLPart + 'FROM ##Temp'
PRINT @SQL

EXEC sp_executesql @SQL

DROP TABLE ##Temp

您的 SQL 代码必须是 nvarchar 类型。另外sp_executesql优于EXECUTE函数,当你有很多类似的查询时,sp_executesql会缓存执行计划,性能会更好。

关于sql - 是否可以在变量中设置选择语句的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41608721/

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