sql 自定義函式

2021-06-07 20:36:48 字數 815 閱讀 3544

delimiter $$

create

/*[definer = ]*/

function `woshow`.`try`(aid bigint)

returns bigint(20)

/*language sql

| [not] deterministic

| | sql security

| comment 'string'*/

begin

if(aid=0) then  set @num = (select  count(*) from user_upload_composition_activity  uu where uu.aid>0);

else set @num = (select  count(*) from user_upload_composition_activity uu where uu.aid = aid);

end if;

return @num;

end$$

delimiter ;

理解:1.判斷語句用= 而不是==

2.如果引數正好與欄位名相同,必須給表取別名,不然 aid=aid 它會當成ture

3.if ()後面緊跟then

4.if(aid=0) 後面語句如果是 aid>0 會造成矛盾,起個別名來解決,表示不是同乙個aid

5.用這個函式的時候,直接select try() 就好了,也可以跟別的選擇一起用。

SQL自定義函式

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

SQL自定義函式

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

SQL 自定義函式

函式型別有 標量型函式 返回乙個確定型別的值 內聯錶值型函式 以表的形式返回值,相當於引數化的檢視 多宣告錶值函式 標量函式和內聯錶值函式結合體,返回值是乙個表,和標量型函式一樣可以用begin.end 建立自定義函式 標量型函式 use database gocreate function fun...