SQL – 15.變數和流程式控制制

來源:互聯網
上載者:User

局部變數_先聲明再賦值

 

聲明局部變數

DECLARE @變數名  資料類型    DECLARE @bookName varchar(20)    DECLARE @bId int

賦值

SET @變數名 =值      --set用於普通的賦值SELECT @變數名 = 值  --用於從表中查詢資料並賦值

 

例:

declare @mo money --聲明變數select @mo=b_money from Book where b_title='.NETMVC3' --賦值 @mo=57.00select * from Book where b_money<@mo --使用變數

 

 

變數分為:
     局部變數:

          局部變數必須以標記@作為首碼 ,如@Age int

          局部變數:先聲明,再賦值 
     全域變數(系統變數):

          全域變數必須以標記@@作為首碼,如@@version

          全域變數由系統定義和維護,我們只能讀取,不能修改全域變數的值

 

IF ELSE

IF(條件運算式)

  BEGIN --相當於C#裡的{

    語句1 ……

  END --相當於C#裡的}

ELSE

  BEGIN

    語句1

    ……

  END

 

 

 

例:

 

 

 

問題:

統計並顯示所有書籍價格(b_money) 的平均值,如果平均價格在50以上,顯示“A“,並顯示平均價格最高的2本書;如果在50以下,顯示“B“,並顯示平均價格最少的2本書。

分析:

第一步,統計平均價格存入臨時變數;

第二步,用IF-ELSE判斷;

declare @mon moneyselect @mon = AVG(b_money) from Bookselect @mon 平均價 if @mon >=50begin select 'A' 大於等於50select top 2 * from Book order by b_money descendelsebeginselect 'B' 小於50select top 2 * from Book order by b_money ascend

 

 

WHILE迴圈

WHILE(條件運算式)
  BEGIN --相當於C#裡的{

    語句

    ……

    BREAK

  END --相當於C#裡的}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

例:

 

問題:

書籍價格上漲,確保每本書價格最少50元。提價:先每本都加2元,看是否都價格達標,如果沒有全部達標,每本再加2元,再看是否都達標,如此反覆提價,直到所有書都達標為止 。

分析:

第一步,統計沒達標的本數 ;

第二步,如果有書沒通過,提價;

第三步,迴圈判斷。

declare @mon intselect @mon = COUNT(*) from book where b_money<50select @mon 低於50的書數while (@mon>0)begin    update book set b_money=b_money+2    select @mon = COUNT(*) from book where b_money<50endselect @mon 低於50的書數select * from book

 

另一種寫法:

DECLARE @mon intWHILE(1=1) --條件永遠成立  BEGIN    SELECT @mon=COUNT(*) FROM Book             WHERE b_money<50    --統計不達標本數    IF (@mon>0)       UPDATE Book --每本加元            SET b_money=b_money+2    ELSE       BREAK    --退出迴圈(只有一行語句可省begin-end)  ENDSELECT * FROM Book

 

aaaa

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.