DB2创建function(一),介绍将function内容作为字段值,或做为一个where条件的情况。

DB2创建function(二),介绍返回的内容为一个集合的情况。调用结果集的示例如下:

select * from table(GET_EFFECTIVE_USER_ID(21))--GET_EFFECTIVE_USER_ID为建立的function函数。 

建立的function示例如下:

CREATE FUNCTION "FAS"."GET_EFFECTIVE_USER_ID" ( "A_USER_ID" BIGINT )
RETURNS TABLE ( "ID" BIGINT )--注意返回的为table(col1,col2,col3) 括号里返回的表列,要一一对应
SPECIFIC "SQL131104183947721"--唯一值
LANGUAGE SQL
DETERMINISTIC
NO EXTERNAL ACTION
READS SQL DATA
CALLED ON NULL INPUT
INHERIT ISOLATION LEVEL WITHOUT LOCK REQUEST
INHERIT SPECIAL REGISTERS
RETURN--直接返回,返回的为之后查询的结果集
SELECT CASE
WHEN (CURR_ROLE_ID = 2 OR CURR_ROLE_ID = 7) AND USER_ID <> A_USER_ID
THEN 0
ELSE USER_ID
END ID
FROM (SELECT A.ID USER_ID, B.ROLE_ID, C.ROLE_ID CURR_ROLE_ID
FROM FA_USER_INFO A,
FA_USER_ROLE B,
(SELECT ROLE_ID
FROM FA_USER_ROLE
WHERE USER_ID = A_USER_ID) C
WHERE A.DEPARTMENT_ID IN (
SELECT DEPARTMENT_ID
FROM FA_DEPARTMENT A, FA_DEPARTMENT_INFO B
WHERE A.ID = B.DEPARTMENT_ID
AND B.PARENT_DEPARTMENT_ID = (SELECT DEPARTMENT_ID
FROM FA_USER_INFO
WHERE ID = A_USER_ID)
UNION
SELECT DEPARTMENT_ID
FROM FA_USER_INFO
WHERE ID = A_USER_ID)
AND A.ID = B.USER_ID)
END;--结束标记

特别说明:Function返回为结果集(table)的情况时,需要注意return后面只能有一个查询语句。不能有类似if等逻辑判断语句

例如 create funtion get_name(var) ... return  if ... then sql...else sql...end if; end;这样的是通不过的

最新文章

  1. Git-rebase 小笔记
  2. Python的高级特性11:拓展基本数据类型(dict)
  3. hdu 5666 (大数乘法) Segment
  4. 在MACOS上实现交叉编译
  5. poj2451Uyuw&#39;s Concert(半平面交)
  6. SUSE linux ,liveUSB制作方法
  7. cocos2dx json数据解析
  8. 九度 1420 Jobdu MM分水果 -- 动态规划、深度优先搜索
  9. .Net程序猿乐Android发展---(10)框架布局FrameLayout
  10. php 可逆加密方法
  11. SpringMVC 参数传递和接收的几种方式
  12. BBS论坛(二十六)
  13. Vue原理--双向数据绑定
  14. Celery 1
  15. 关于调用数据库函数executeUpdate抛出异常
  16. SonarQube
  17. php printf() 输出格式化的字符串
  18. ubuntu16.04 eclipse+pydev 配置
  19. Eclipse调试cas server 3.5.2.1
  20. Spring 集成rabbiatmq

热门文章

  1. NodeJS配置TaoBao源
  2. Retrofit+OKHttp忽略https证书验证
  3. 关于网站开发中div标签中设置宽度后其中文本溢出的原因和解决方法
  4. 使用Tomcat部署应用
  5. 基于MSMQ绑定的WCF服务实现总结
  6. 互联网,IT,大数据,机器学习,AI知识tag云
  7. mysql中删除同一行会经常出现死锁?太可怕了
  8. 安装并使用pt-ioprofile
  9. JBoss EAP应用服务器部署方法和JBoss 开发JMS消息服务小例子
  10. MSCRM2016 取消邮箱强制SSL