How to set variable from a SQL query?

前端 未结 9 1379
被撕碎了的回忆
被撕碎了的回忆 2020-11-28 01:19

I\'m trying to set a variable from a SQL query:

declare @ModelID uniqueidentifer

Select @ModelID = select modelid from models
where areaid = \'South Coast\'         


        
相关标签:
9条回答
  • 2020-11-28 01:43
    Select @ModelID =m.modelid 
    From   MODELS m
    Where  m.areaid = 'South Coast'
    

    In this case if you have two or more results returned then your result is the last record. So be aware of this if you might have two more records returned as you might not see the expected result.

    0 讨论(0)
  • 2020-11-28 01:48

    There are three approaches:

    1. DECLARE
    2. SET -- Microsoft Recommended approach
    3. SELECT

    Below query details the advantage and disadvantage of each:

    -- First way, 
    DECLARE @test int = (SELECT 1)
           , @test2 int = (SELECT a from (values (1),(2)) t(a)) -- throws error
    
    -- advantage: declare and set in the same place
    -- Disadvantage: can be used only during declaration. cannot be used later
    
    -- Second way
    DECLARE @test int  
           , @test2 int 
    
    SET @test = (select 1)
    SET @test2 = (SELECT a from (values (1),(2)) t(a)) -- throws error
    
    -- Advantage: ANSI standard. 
    -- Disadvantage: cannot set more than one variable at a time
    
    -- Third way
    DECLARE @test int, @test2 int 
    SELECT @test = (select 1)
          ,@test2 = (SELECT a from (values (1),(2)) t(a)) -- throws error
    
    -- Advantage: Can set more than one variable at a time
    -- Disadvantage: Not ANSI standard
    
    0 讨论(0)
  • 2020-11-28 01:49

    To ASSIGN variables using a SQL select the best practice is as shown below

    ->DECLARE co_id INT ;
    ->DECLARE sname VARCHAR(10) ;
    
    ->SELECT course_id INTO co_id FROM course_details ;
    ->SELECT student_name INTO sname FROM course_details;
    

    IF you have to assign more than one variable in a single line you can use this same SELECT INTO

    ->DECLARE val1 int;
    ->DECLARE val2 int;
    
    ->SELECT student__id,student_name INTO val1,val2 FROM student_details;
    
    --HAPPY CODING-- 
    
    0 讨论(0)
提交回复
热议问题