tsqlif語句
Ⅰ 用T-sql流程式控制制語句編寫程序,求兩個數的最大公約數和最小公倍數
可以定義兩個函數來求最大公約數和最小公倍數,程序如下
/*求兩個數的最大公約數*/
create function GetGys(@num1 int,@num2 int)
returns int --返回值
as
begin
declare @times int --計數器
declare @min int --存儲兩個數的較小者
declare @result int --保存結果
if(@num1>=@num2)
set @min=@num2
else
set @min=@num1
set @times=@min
while(@times<=@min) --循環
begin
if(@num1%@times=0 and @num2%@times=0)
begin
set @result=@times
break
end
set @times=@times-1
end
return @result
end
/*求兩個數的最小公倍數*/
create function GetGbs(@num1 int,@num2 int)
returns int
as
begin
declare @result int --結果
declare @max int --保存兩個數的大者
declare @times int
if @num1<=@num2
set @max=@num2
else
set @max=@num1
set @times=@max
while(@times>=@max)
begin
if(@times%@num1=0 and @times%@num2=0)
begin
set @result=@times
break
end
set @times=@times+1
end
return @result
end
最後測試:
運行
select dbo.GetGys(15,20) as 最大公約數,dbo.GetGbs(15,20) as 最小公倍數
顯示結果:
最大公約數 最小公倍數
5 60
Ⅱ sql的循環,判斷,跳轉語句
流程式控制制語句
封裝了多個T-SQL語句組合,將他們組成一個單元來處理。Begin……end可以嵌套使用。
語法如下:
例子
語法如下:
例子:Else是可選的,最簡單的if語句沒有else部分
If……exists語句時用來檢測數據是否存在,當然了我們也可以通過檢測匹配行count(*)來實現,但是沒有if……exists效果好。因為如果只要找到第一條匹配的數據的話,伺服器就會停止檢測。
語法規則
例子
Case……when結構提供比if……else結構更多的選擇和判斷機會
例子
可以重復執行sql語句或者要執行的語句塊,只要指定的條件成立即可。
語法規則
例子
使用goto語句可以改變程序的流程,讓程序自動跳到我們要執行的程序行
例子
Ⅲ SQL中如何使用IF語句
SQL中的if語句與偽代碼的寫法很相似,即:
IF (條件) then
執行語句體
END IF;
舉例:
begin
if 1 > 0 then
dbms_output.put_line('1>0');
end if;
end;
Ⅳ 簡述t-sql語言中if,,,else語句的作用
首先
if…else
begin…end是SQL流程式控制制語句,作用是使得大部分業務邏輯可以在資料庫層面進行。
語法:
begin
{sql語句或語句塊}
end
(注意:begin
和
end要成對使用)
if
布爾表達式
{sql語句或語句塊}
else
布爾表達式
{sql語句或語句塊}
在沒有流程式控制制語句的情況下,T-SQL語句是按照從上到下的順序逐個執行.
使用流程式控制制語句可以讓開發人員可以基於某些邏輯進行選擇性的跳轉,實現了類似高級語言的跳轉結構.