将选择查询的值分配给变量

时间:2019-01-31 11:06:25

标签: sql-server tsql

我只是想将查询结果提供给已声明的变量。某事不起作用,但是我不知道为什么它不起作用。

DECLARE @Regime VARCHAR(2)

SELECT @Regime = (SELECT TOP 1 [H999C-CAETWK]
FROM [TC].[V_SSCAET]
WHERE [EM08I-CAIDWK] = @Employer
ORDER BY 99999999-[ARCHD-CAETWK_38] DESC)

单独运行子查询时,它将返回正确的值。不知何故,该值没有分配给变量。在调试模式下,该变量将保持无值。

1 个答案:

答案 0 :(得分:0)

您可以尝试

Create table [V_SSCAET] ( [H999C-CAETWK] Varchar(2), [EM08I-CAIDWK] Varchar(20), [ARCHD-CAETWK_38] INT)

Insert Into [V_SSCAET] Values ('AC', 'ABC Employer', 15)

DECLARE @Regime VARCHAR(2)
DECLARE @Employer VARCHAR(20)

SET @Employer = 'ABC Employer'

SELECT @Regime = (SELECT TOP 1 [H999C-CAETWK]
FROM [V_SSCAET]
WHERE [EM08I-CAIDWK] = @Employer
ORDER BY 99999999-[ARCHD-CAETWK_38]  DESC)

SELECT @Regime AS Regime

这里是直播demo