在SELECT语句中为一列设置多个变量

时间:2017-01-05 16:24:39

标签: sql sql-server

我必须在SQL Server的存储过程中设置几个变量。 目前,我使用单独的SELECT语句来设置每个变量。我不知道是否有更好/更有效的方法。 这是2个变量的样本,但总共有8个变量。

DECLARE @source nvarchar(250)
DECLARE @target nvarchar(250) 

SET @source = (SELECT Value FROM ApplicationSetting WHERE Key = 'Source')
SET @target = (SELECT Value FROM ApplicationSetting WHERE Key = 'Target')

目前,我使用8个单独的select语句来设置每个变量。 这是设置这么多变量的最有效方法吗?

1 个答案:

答案 0 :(得分:3)

在单个select中,我们可以使用条件聚合

分配两个变量

试试这种方式

DECLARE @source NVARCHAR(250)
DECLARE @target NVARCHAR(250)

SELECT @source = Max(CASE WHEN KEY = 'Source' THEN Value END),
       @target = Max(CASE WHEN KEY = 'Target' THEN Value END)
FROM   ApplicationSetting
WHERE  KEY IN( 'Source', 'Target' )