根據20190621工作寫的邏輯,以后可根據實際情況再做修改。順便記錄一下游標的使用,加強記憶。
DECLARE @Id NVARCHAR(MAX) DECLARE @UserName NVARCHAR(MAX) DECLARE @Password NVARCHAR(MAX) DECLARE @NickName NVARCHAR(MAX) create table #tmp (Id NVARCHAR(MAX),UserName NVARCHAR(MAX),Password NVARCHAR(MAX),NickName NVARCHAR(MAX)) --建立臨時數據表 --聲明一個游標mycursor,select語句中參數的個數必須要和從游標取出的變量名相同 DECLARE mycursor CURSOR FOR SELECT Id,UserName,Password,NickName FROM dbo.Users OPEN mycursor --打開游標 --從游標里取出數據賦值到我們剛才聲明的變量中(移動游標指向到第一條數據,提取第一條數據存放在變量中) FETCH NEXT FROM mycursor INTO @Id, @UserName,@Password,@NickName --判斷游標的狀態 -- 0 fetch語句成功 ---1 fetch語句失敗或此行不在結果集中 ---2 被提取的行不存在 WHILE (@@fetch_status = 0) --如果上一次操作成功則繼續循環 BEGIN --顯示出我們每次用游標取出的值 --print (@Id+'--------'+@UserName+'--------'+@Password+'----'+@NickName) --條件判斷 if (@Id>=10) begin INSERT INTO #tmp(Id,UserName,Password,NickName) VALUES(@Id,@UserName,@Password,@NickName) end --用游標去取下一條記錄(繼續取下一行數據) FETCH NEXT FROM mycursor INTO @Id,@UserName,@Password,@NickName END CLOSE mycursor --關閉游標 DEALLOCATE mycursor --撤銷游標(釋放資源 ) SELECT * FROM #tmp; --查詢臨時表 DROP TABLE #tmp --刪除臨時表