2013-05-16 53 views
8

我怎样才能提高下面的代码使用“选择”一次分配从查询值变量?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 
ELSE 
BEGIN 
    SET @other_variable = 0 
END 

回答

18

试试这个:

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

尝试这种解决方案:

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 
相关问题