SQL Server使用迴圈語句建立模擬資料

2021-08-28 16:22:14 字數 2342 閱讀 6066

sql server使用迴圈語句建立模擬資料

例項1、使用迴圈語句建立模擬資料

1.1 建立學生資訊表

create table stuinfo

( stuid int, --學生編號

stuname nvarchar(20), --學生姓名

*** nvarchar(20) --學生性別

)

1.2 給學生資訊表建立模擬資料

begin

declare @datacount int = 100; --資料總數

declare @currentcount int =1; --當前條數

declare @*** nvarchar(20); --學生性別

while @currentcount<=@datacount

begin

--先刪除舊資料

delete stuinfo where stuid = @currentcount;

--要求:每隔第5條資料時,學生性別為「女」,其餘資料為「男」

if (@currentcount%5=0)

begin

set @*** = '女';

endelse

begin

set @*** = '男';

end;

--執行新增操作

insert stuinfo values(@currentcount,'學生'+ convert(varchar,@currentcount),@***);

--當前條數加一

set @currentcount = @currentcount +1;

end;

end;

例項2:使用迴圈語句建立帶有期間欄位的模擬資料

2.1 建立學生成績表

create table stuscore

( period nvarchar(20), --期間

stuname nvarchar(20), --學生名稱

subject nvarchar(20), --科目名稱

score int --考試成績

)

2.2 給學生成績表建立模擬資料

begin 

declare @begindate datetime = '2018-10-01'; --開始日期

declare @enddate datetime = '2018-10-31'; --結束日期

declare @currentdate datetime = @begindate; --當前日期

declare @period nvarchar(20); --當前期間

while @currentdate<=@enddate

begin

--期間值

set @period = convert(varchar(10),@currentdate,120);

--刪除該期間下的舊資料

delete stuscore where period = @period;

--插入模擬資料

insert into stuscore values(@period,'張三','語文',cast(ceiling(rand() * 100) as int));

insert into stuscore values(@period,'張三','數學',cast(ceiling(rand() * 100) as int));

insert into stuscore values(@period,'李四','語文',cast(ceiling(rand() * 100) as int));

insert into stuscore values(@period,'李四','數學',cast(ceiling(rand() * 100) as int));

insert into stuscore values(@period,'王五','語文',cast(ceiling(rand() * 100) as int));

insert into stuscore values(@period,'王五','數學',cast(ceiling(rand() * 100) as int));

--當前日期加一天

set @currentdate = dateadd(day,1,@currentdate);

end;

end;

sql server 語句 迴圈 游標 臨時表

create table tmp i sarinfor varchar 10 建立乙個臨時表 insert into tmp select a.i sailorinfoid from cert sailorletter a left join crew sailorinfo b on a.i sai...

for語句巢狀迴圈使用

案例 要求 輸出 組成的幾行幾列拼成的長方形和三角形 分析 輸出的應該是單個 組成的圖形,所以要考慮到每行每列的 個數 1.要想組成三行四列的長方形圖形 則需要每行先排好四個 再連續執行下面的程式,輸出三行同樣的 for int i 0 i 4 i 2.優化 巢狀迴圈 for int i 0 i 3...

for 迴圈語句的使用

在實際工作環境中,經常會遇到某項任務需要多次執行的情況,而每次執行時僅僅是處理的物件不一樣,其他命令完全相同。如 根據伺服器清單檢查各個主機的存活狀態 根據ip位址黑名單設定拒絕訪問的防火牆策略等。這樣繁瑣的重複任務時,if語句已經不能滿足需求。則我們需要for迴圈語句。for語句的結構 使用for...