SQL函式的自定義和呼叫

2021-10-09 21:56:34 字數 1342 閱讀 1444

sql中自定義的函式分為標量函式和錶值函式。

標量函式 :返回值是乙個值;

​錶值函式 :返回值是一張表 。

標量函式:

create

function testa(

@idint

)--定義函式名(隨意)、引數、引數型別(可以有很多個引數,用『,』分隔)

returns

varchar(10

)-- 定義返回結果的型別

asbegin

declare

@value

varchar(10

)select

@value

= name from

user

where uid =

@idreturn

@value

end--呼叫函式

select dbo.testa(

1)

錶值函式之內嵌函式:

--返回所有學生的資訊  注意此處不需begin-end包裹

create

function testb(

)--定義函式名(隨意)、引數、引數型別(可以有很多個引數,用『,』分隔)

returns

table

-- 定義返回結果型別為一張表

asreturn

(select

*from student)

--呼叫函式

select

*from dbo.testb(

)

錶值函式-多語句函式:

create

function testc(

@sname

varchar(10

))returns

@tempa

table

( id int

, namess varchar(10

),mathsc int

, chinesesc int

)--自定義表中的字段

asbegin

insert

into

@tempa

select s.sid,s.name,sc.math_score,sc.chinese_score from student s

left

join score sc on sid = csno where name =

@sname

return

end--呼叫函式

select

*from dbo.testc(

'孫')

SQL自定義函式

建立使用者自定義函式 標量函式 create function dbo.bmrs bmh as int returns int asbegin declare bmrs int select bmrs count 工號 from 銷售人員where 部門號 bmh return bmrs endgo...

sql 自定義函式

delimiter create definer function woshow try aid bigint returns bigint 20 language sql not deterministic sql security comment string begin if aid 0 th...

SQL自定義函式

自定義函式與儲存過程的區別 存在的意義 1.能夠在select等sql語句中直接使用自定義函式,儲存過程不行。2.自定義函式可以呼叫其他函式,也可以呼叫自己 遞迴 3.可以在表列和check 約束中使用自定義函式來實現特殊列或約束 4.自定義函式不能有任何 函式 是指對具有函式外作用域 例如資料庫表...