TSQL - Assign value from query to variable if record exists in a single select

11,048

Solution 1

Try This :

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

Solution 2

Try this solution:

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
Share:
11,048
rgb
Author by

rgb

Updated on July 28, 2022

Comments

  • rgb
    rgb almost 2 years

    How I can improve below code to use 'select' only once?

    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