T SQL(二)自定義函式的控制流語句

2021-07-03 12:54:42 字數 3391 閱讀 1500

自定義函式

內聯錶值函式:返回值為可更新表。函式內包含單個

select

語句且該語句可更新,則返回的表也可以更新。

多語句錶值函式:返回值為不可更新表。函式內包含多個

select

語句且該語句可更新,則返回的表不可更新。

標量函式:返回值為標量值。

自定義函式由乙個或者多個

t-sql

語句構成的子程式

,用於封裝使用者**

定義格式:

create

function

函式名(

引數列表)

returns

資料型別

---定義返回值型別

asbegin

變數函式

create

function max2( @par1 real

, @par2 real

)returns

real

asbegin

declare @par real

if @par1 > @par2

set @par = @par1

else

set @par = @par2;

return @par

end

內聯錶值函式

create

function showperson( @par int

)returns

tableas

return

select

*from person where pno = @par

select

*from dbo.showperson(2);

多語句錶值函式

create

function showstudent ( @xuehao varchar

(12)

)returns @chengji table

( xuehao nchar

(12)

, xingming nchar

(20))as

begin

insert @chengji

select xuehao , xingming from student where xuehao = @xuehao

return

end控制流語句

1、if

--- else

if…else

語句是條件判斷語句,其中,

else

子句是可選的,最簡單的

if語句沒有

else

子句部分。

if…else

語句用來判斷當某一條件成立時執行某段程式,條件不成立時執行另一段程式。 2

、begin

--- end

begin

…end

語句能夠將多個

transact-sql

語句組合成乙個語句塊,並將它們視為乙個單元處理。

在條件語句和迴圈等控制流程語句中,當符合特定條件便要執行兩個或者多個語句時,就需要使用

begin

…end

語句。

其語法形式為:

begin

end

3、case函式

case

函式可以計算多個條件式,並將其中乙個符合條件的結果表示式返回。

case

函式按照使用形式的不同,可以分為簡單

case

函式和搜尋

case

函式。

例: select

pname,age,

case

prof

when

'總經理

'then

'高層幹部'

when

'部門經理

'then

'高層幹部'

when'主任

'then

'中層幹部'

when'組長

'then

'基層幹部'

endfrom

person

4、while

…continue…break語句

continue

語句可以使程式跳過

continue

語句後面的語句,回到

while

迴圈的第一行命令。

break

語句則使程式完全跳出迴圈,結束

while

語句的執行。

5、goto語句

goto

語句可以使程式直接跳到指定的標有識別符號的位置處繼續執行,而位於

goto

語句和識別符號之間的程式將不會被執行。

goto

語句和識別符號可以用在語句塊、批處理和儲存過程中,識別符號可以為數字與字元的組合,但必須以「:

」結尾。

例:利用

goto

語句求出從加到的總和。

declare

@sum int

, @count int

select

@sum=0, @count=1

label_1:

select

@sum=@sum+@count

select

@count=@count+1

if@count<=5

goto

label_1

select

@count,@sum 6

、waitfor語句

waitfor

語句用於暫時停止執行

sql語句、語句塊或者儲存過程等,直到所設定的時間已過或者所設定的時間已到才繼續執行。

waitfor

語句的語法形式為:

waitfor

其中,delay

用於指定時間間隔,

time

用於指定某一時刻,其資料型別為

datetime

,格式為

『hh:mm:ss』。

waitfor

time

'12:52'

select

*from person

7.return語句

return

語句用於無條件地終止乙個查詢、儲存過程或者批處理,此時位於

return

語句之後的程式將不會被執行。

return

語句的語法形式為:

return

[ integer_expression ]

其中,引數

integer_expression

為返回的整型值。儲存過程可以給呼叫過程或應用程式返回整型值。

T SQL程式設計 使用者自定義函式 標量函式

在使用sql server的時候,除了其內建的函式之外,還允許使用者根據需要自己定義函式。根據使用者定義函式返回值的型別,可以將使用者定義的函式分為三個類別 如果使用者定義函式包含了單個select語句且語句可更新,則該函式返回的表也可更新,這樣的函式稱為內嵌錶值函式。如果使用者定義函式包含多個se...

python自定義函式(二)

coding cp936 給函式的引數設定預定值 def test function val1,val2 20 形參 有預定值的引數寫到最右面,否則編譯報錯 print val1,加,列印到一行 print val2 c val1 val2 return c print entry programe...

T Sql ,自定義函式,返回遞迴結果集

寫程式是總是用到父子關係的資料,通過給定節點得到其子節點的記錄,寫檢視但是不支援傳入引數。那就用 自定義函式來完成這個需求吧!1.建立檢視 create function myfunc id int returns tab table id int,parentid int,level int,tn...