gpt4 book ai didi

sql-server - TSQL变量赋值在 "then"的select case时

转载 作者:行者123 更新时间:2023-12-04 02:15:27 24 4
gpt4 key购买 nike

我正在尝试使用来自选择的条件时的情况来设置一个变量和其他变量:

DECLARE @var_to_be_set INT
DECLARE @var1 INT
DECLARE @var2 INT

SELECT
CASE WHEN col = 1 THEN @var_to_be_set = col + @var1
WHEN col = 2 THEN @var_to_be_set = col + @var2
END
FROM table [etc..etc..]

这可能吗?我尝试的每一种方式都不断出现不正确的语法错误。在谷歌上尝试了一个解决方案,但找不到任何相关的内容。

谢谢

最佳答案

是的,您可以使用 CASE 为变量赋值:

DECLARE @var_to_be_set INT
DECLARE @var1 INT -- intialize variables with values
DECLARE @var2 INT

SELECT @var_to_be_set =
CASE WHEN col = 1 THEN col + @var1
WHEN col = 2 THEN col + @var2
END
FROM table [etc..etc..]

LiveDemo

请记住,如果您的查询返回多行,您将只会获得一个值。

较短的版本:

SELECT @var_to_be_set = col + CASE col 
WHEN 1 THEN @var1
WHEN 2 THEN @var2
END
...

甚至(SQL Server 2012+):

SELECT @var_to_be_set = col + CHOOSE(col, @var1, @var2)
...

关于sql-server - TSQL变量赋值在 "then"的select case时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34333378/

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