Vòng lặp For trong SQL Server

Lập trình vòng lặp For trong SQL Server, vòng lặp SQL cũng giống như các ngôn ngữ khác

  1. Cú pháp vòng lặp SQL Server
  2. Ví dụ vòng lặp in ra từ 1 đến 10 trong SQL Server
  3. Ví dụ game vòng lặp con chim với SQL Server
  4. Ví dụ vòng lặp nâng cao sql server, Viết function có sử dụng vòng lặp trong SQL

 

  • Cú pháp sử dụng WHILE SQL SERVER:

-Cú pháp đơn giản

WHILE condition
BEGIN
   {...statements...}
END

-Cú pháp có sử dụng lệnh ngừng đột ngột (khẩn cấp)

WHILE condition
BEGIN
   {...statements...}
   IF condition
   BEGIN
         BREAK
   END

END

 

  • Ví dụ vòng lặp in ra từ 1 đến 10 trong SQL Server

DECLARE @cnt int
Set @cnt=0

WHILE @cnt < 10
BEGIN
 PRINT 'Vi du mo phong vong lap FOR trong SQL Server cua iif.vn';
 --PRINT 'Vi du mo phong vong lap FOR trong SQL Server cua iif.vn, in lan:' + cast(@cnt as nvarchar(10))
 SET @cnt = @cnt + 1;
END;

PRINT 'Ket thuc mo phong vong lap FOR cua iif.vn';

 

  • Ví dụ game con chim bay với vòng lặp while sql server

 


-- game chim bay
-- Ví dụ 1: bay không điểm dừng
Declare @so_km int
set @so_km=0
print 'bat dau bay'
While 1=1
begin
    print 'dang bay'
end
print 'ha canh an toan'

-- Ví dụ 2: bay hạ cánh khi >10km
Declare @so_km int
set @so_km=0
print 'bat dau bay'
While @so_km<=10
begin
    set @so_km=@so_km+1
    print 'dang bay' + cast(@so_km as nvarchar(10))
end
print 'ha canh an toan'
-- Ví dụ 3: xác định bay 100km, nếu bay qua 10km nếu độ gió >=10 thì hạ cánh
Declare @so_km int
set @so_km=0
Declare @do_gio int
set @do_gio=12
print 'bat dau bay'
While @so_km<=100
begin
    set @so_km=@so_km+1
    print 'dang bay' + cast(@so_km as nvarchar(10))
    if @so_km>=10 AND @do_gio>10
    begin
        break
    end
end
print 'ha canh an toan'

Xem video demo về vòng lặp trong SQL Server

 Video 2: vòng lặp dữ liệu với cursor sql server

 

  • Ví dụ vòng lặp nâng cao sql server, Viết function có sử dụng vòng lặp trong SQL

Tạo ra 1 function SQL và kết quả trả về là 1.000 bảng ghi và hiển thị ra


SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- select * From dbo.inso(100000)
ALTER FUNCTION dbo.inso
(   
    -- Add the parameters for the function here
    @A int
)
RETURNS @temp TABLE
(
    STT int
)
AS
BEGIN 
   DECLARE @cnt int
Set @cnt=1

WHILE @cnt <= @A
BEGIN
 
 Insert @temp values
            (
                    @cnt           
            )

SET @cnt = @cnt + 1;
END;   

    Return;
END
GO

 Sau khi thực thi hàm SQL Server xong.

Gọi câu SQL: select * From  dbo.inso(1000)