自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SQL循環(huán)語句示例

數(shù)據(jù)庫 SQL Server
下面就將為您分析SQL循環(huán)語句的例子,并分析了其中的一些問題,供您參考,希望對(duì)您學(xué)習(xí)SQL語句能夠有所幫助。

在 sqlserver 數(shù)據(jù)庫中,循環(huán)語句是最常用的語句之一,下面就將為您分析SQL循環(huán)語句的例子,供您參考,希望對(duì)您有所啟迪。

SQL循環(huán)語句
declare @i int
set @i=1
while @i<30
begin
insert into test (userid) values(@i)
set @i=@i+1
end
--------------------------
while 條件
begin
執(zhí)行操作
set @i=@i+1
end
WHILE
設(shè)置重復(fù)執(zhí)行 SQL 語句或語句塊的條件。只要指定的條件為真,就重復(fù)執(zhí)行語句??梢允褂?BREAK 和 CONTINUE 關(guān)鍵字在循環(huán)內(nèi)部控制 WHILE 循環(huán)中語句的執(zhí)行。
語法
WHILE Boolean_expression
      { sql_statement | statement_block }
      [ BREAK ]
      { sql_statement | statement_block }
      [ CONTINUE ]
參數(shù)
Boolean_expression
返回 TRUE 或 FALSE 的表達(dá)式。如果布爾表達(dá)式中含有 SELECT 語句,必須用圓括號(hào)將 SELECT 語句括起來。
{sql_statement | statement_block}
Transact-SQL 語句或用語句塊定義的語句分組。若要定義語句塊,請(qǐng)使用控制流關(guān)鍵字 BEGIN 和 END。
BREAK #p#
導(dǎo)致從最內(nèi)層的 WHILE 循環(huán)中退出。將執(zhí)行出現(xiàn)在 END 關(guān)鍵字后面的任何語句,END 關(guān)鍵字為循環(huán)結(jié)束標(biāo)記。
CONTINUE
使 WHILE 循環(huán)重新開始執(zhí)行,忽略 CONTINUE 關(guān)鍵字后的任何語句。
注釋
如果嵌套了兩個(gè)或多個(gè) WHILE 循環(huán),內(nèi)層的 BREAK 將導(dǎo)致退出到下一個(gè)外層循環(huán)。首先運(yùn)行內(nèi)層循環(huán)結(jié)束之后的所有語句,然后下一個(gè)外層循環(huán)重新開始執(zhí)行。
示例
A. 在嵌套的 IF...ELSE 和 WHILE 中使用 BREAK 和 CONTINUE
在下例中,如果平均價(jià)格少于 $30,WHILE 循環(huán)就將價(jià)格加倍,然后選擇最高價(jià)。如果最高價(jià)少于或等于 $50,WHILE 循環(huán)重新啟動(dòng)并再次將價(jià)格加倍。該循環(huán)不斷地將價(jià)格加倍直到最高價(jià)格超過 $50,然后退出 WHILE 循環(huán)并打印一條消息。
USE pubs
GO
WHILE (SELECT AVG(price) FROM titles) < $30
BEGIN
     UPDATE titles
        SET price = price * 2
     SELECT MAX(price) FROM titles
     IF (SELECT MAX(price) FROM titles) > $50
        BREAK
     ELSE
        CONTINUE
END
PRINT 'Too much for the market to bear'
B. 在帶有游標(biāo)的過程中使用 WHILE
以下的 WHILE 結(jié)構(gòu)是名為 count_all_rows 過程中的一部分。下例中,該 WHILE 結(jié)構(gòu)測(cè)試用于游標(biāo)的函數(shù) @@FETCH_STATUS 的返回值。因?yàn)?@@FETCH_STATUS 可能返回 –2、-1 或 0,所以,所有的情況都應(yīng)進(jìn)行測(cè)試。如果某一行在開始執(zhí)行此存儲(chǔ)過程以后從游標(biāo)結(jié)果中刪除,將跳過該行。成功提取 (0) 后將執(zhí)行 BEGIN...END 循環(huán)內(nèi)部的 SELECT 語句。
USE pubs
DECLARE tnames_cursor CURSOR
FOR
     SELECT TABLE_NAME
     FROM INFORMATION_SCHEMA.TABLES #p#
OPEN tnames_cursor
DECLARE @tablename sysname
--SET @tablename = 'authors'
FETCH NEXT FROM tnames_cursor INTO @tablename
WHILE (@@FETCH_STATUS <> -1)
BEGIN
     IF (@@FETCH_STATUS <> -2)
     BEGIN   
        SELECT @tablename = RTRIM(@tablename)
        EXEC ('SELECT ''' + @tablename + ''' = count(*) FROM '
              + @tablename )
        PRINT ' '
    END
     FETCH NEXT FROM tnames_cursor INTO @tablename
END
CLOSE tnames_cursor
DEALLOCATE tnames_cursor
===================================================
可以用變量的形式來增加,不過你的userid 三位顯然不夠,因?yàn)槟阋?0000數(shù)據(jù),所以要和authnum形式一樣,5位才夠
下面是一個(gè)簡(jiǎn)單的例子,你可以根據(jù)實(shí)際需求來改一下。
DECLARE @i int
DECLARE @strUserId varchar(10)
DECLARE @strAuthnum varchar(10)
Set @i = 0
WHILE @i < 10000
BEGIN
    Set @i =@i +1
SET @strUserId = RIGHT('00000' + CAST(@i AS varchar(10)),5)
SET @strAuthnum = @strUserId
insert into user_info values(@strUserId,@strAuthnum)
END

 

【編輯推薦】
SQL數(shù)據(jù)庫中的臨時(shí)表詳解

SQL數(shù)據(jù)庫中事務(wù)的ACID特性

SQL中where 1=1語句的作用

SQL中UNION指令的用法

遠(yuǎn)程連接sql server服務(wù)器的方法

 

 

 

責(zé)任編輯:段燃 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2010-09-08 16:26:26

SQL循環(huán)語句

2010-09-25 14:59:54

SQL語句

2010-09-17 09:35:51

SQL中if語句

2010-09-08 16:38:13

SQL循環(huán)語句

2010-09-08 16:48:27

SQL循環(huán)游標(biāo)

2010-09-08 17:10:24

SQL循環(huán)語句

2023-11-15 20:24:54

數(shù)據(jù)庫SQLGo語言

2010-09-09 16:34:19

SQL循環(huán)while

2010-09-17 13:40:43

SQL更新

2010-09-10 14:33:32

SQL循環(huán)語句

2010-11-18 12:58:25

Oracle條件分支語

2010-09-06 11:05:05

SQL SERVER語句

2010-11-18 09:19:10

Oracle循環(huán)語句

2021-08-11 09:00:30

Python基礎(chǔ)循環(huán)

2010-09-14 17:20:39

SQL函數(shù)

2010-09-25 16:37:33

SQL動(dòng)態(tài)查詢

2023-03-30 09:10:06

SQLSELECTFROM

2023-01-31 13:55:33

Java循環(huán)語句

2009-08-20 15:26:42

C#循環(huán)語句

2011-05-19 13:19:38

sql數(shù)據(jù)刪除
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)