案例一:根據傳入的值返回一個知足條件的值。適用於查詢的字段(通過較複雜邏輯得出)html
CREATE FUNCTION "FAS"."GET_ALL_NAME" ( "A_ID" BIGINT ) RETURNS VARCHAR(9000) SPECIFIC "SQL131107190046233"--SPECIFIC名稱不能與其餘FUNCTION的重複 LANGUAGE SQL NOT DETERMINISTIC EXTERNAL ACTION READS SQL DATA CALLED ON NULL INPUT INHERIT ISOLATION LEVEL WITHOUT LOCK REQUEST INHERIT SPECIAL REGISTERS BEGIN ATOMIC --聲明變量 DECLARE A_CURR_ID BIGINT DEFAULT 0 ; DECLARE A_CURR_NAME VARCHAR(50) DEFAULT '' ; DECLARE SRETURN VARCHAR(1000) DEFAULT '' ; --設置變量值 SET A_CURR_NAME= (SELECT NAME FROM FA_DEPARTMENT WHERE ID=A_ID);--當前名稱 SET A_CURR_ID= (SELECT PARENT_ID FROM FA_DEPARTMENT WHERE ID=A_ID);--當前名稱 SET SRETURN='_'||A_CURR_NAME; --WHILE循環 WHILE A_CURR_ID>0 DO SET A_CURR_NAME= (SELECT NAME FROM FA_DEPARTMENT WHERE ID=A_CURR_ID);--當前名稱 SET A_CURR_ID= (SELECT PARENT_ID FROM FA_DEPARTMENT WHERE ID=A_CURR_ID);--當前名稱 SET SRETURN='_'||A_CURR_NAME||SRETURN; END WHILE; --返回值 RETURN SRETURN; END;
說明:該示例傳入參數A_ID,經過A_ID查詢相關數據。並將結果以字符串格式返回。sql
該方法可在sql語句中調用。以下:post
select GET_ALL_NAME(21) from SYSIBM.SYSDUMMY1
使用場景:可將其做爲一個sql查詢語句的列字段值,也能夠用在where字句中。url