TSQL-如果记录存在于单个select中,则将查询中的值分配给变量

TSQL-如果记录存在于单个select中,则将查询中的值分配给变量,sql,sql-server-2008,tsql,Sql,Sql Server 2008,Tsql,如何改进下面的代码,使其只使用“选择”一次 IF EXISTS (SELECT [NUMBER] FROM [TABLE] WHERE [ID_RECORD] = @id_record BEGIN DECLARE @tmp_variable SELECT @tmp_variable = [NUMBER] FROM [TABLE] WHERE [ID_RECORD] = @id_record SET @other_variable = @tmp_variable END ELS

如何改进下面的代码,使其只使用“选择”一次

IF EXISTS (SELECT [NUMBER] FROM [TABLE] WHERE [ID_RECORD] = @id_record
BEGIN
   DECLARE @tmp_variable
   SELECT @tmp_variable = [NUMBER] FROM [TABLE] WHERE [ID_RECORD] = @id_record

   SET @other_variable = @tmp_variable
END
ELSE
BEGIN
   SET @other_variable = 0
END
尝试以下解决方案:

DECLARE @tmp_variable int
SET @tmp_variable = null
SELECT @tmp_variable = [NUMBER] FROM [TABLE] WHERE [ID_RECORD] = @id_record

IF @tmp_variable is not null
BEGIN           
   SET @other_variable = @tmp_variable
END
ELSE
BEGIN
   SET @other_variable = 0
END
试试这个:

 DECLARE @tmp_variable INT
 SET @tmp_variable = ISNULL(( SELECT    [NUMBER]
                              FROM      [TABLE]
                              WHERE     [ID_RECORD] = @id_record
                             ), 0)