DB2创建function(二)
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;这样的是通不过的
DB2创建function(二)的更多相关文章
- DB2创建function(一)
案例一:根据传入的值返回一个满足条件的值.适用于查询的字段(经过较复杂逻辑得出) CREATE FUNCTION "FAS"."GET_ALL_NAME" ( ...
- db2 创建function报错
create function fun_fw_sfyczy(pi_operunitid varchar(2)) returns varchar(2)LANGUAGE SQL BEGIN ATOMIC ...
- JavaScript 基础(二) - 创建 function 对象的方法, String对象, Array对象
创建 function 对象的两种方法: 方式一(推荐) function func1(){ alert(123); return 8 } var ret = func1() alert(ret) 方 ...
- DB2创建EMP和DEPT并进行基础操作
一.DB2创建EMP和DEPT测试表 --DB2创建测试表 CREATE TABLE TEST.EMP (EMPNO INTEGER NOT NULL, ENAME ), JOB ), MGR INT ...
- ASP.NET Web API 控制器创建过程(二)
ASP.NET Web API 控制器创建过程(二) 前言 本来这篇随笔应该是在上周就该写出来发布的,由于身体跟不上节奏感冒发烧有心无力,这种天气感冒发烧生不如死,也真正的体会到了什么叫病来如山倒,病 ...
- Xamarin XAML语言教程使用Xamarin Studio创建XAML(二)
Xamarin XAML语言教程使用Xamarin Studio创建XAML(二) 使用Xamarin Studio创建XAML Xamarin Studio和Visual Studio创建XAML文 ...
- How to create DB2 user function easily by DB Query Analyzer 6.03
How to create DB2user function easily by DB Query Analyzer 6.03 Ma Genfeng (Guangdong Unitoll Servic ...
- DB2创建数据库常用参数详解
转自http://czmmiao.iteye.com/blog/1335801 DB2创建数据库常用参数详解 本文只介绍DB2 create database语法中的常用参数http://publib ...
- {django模型层(二)多表操作}一 创建模型 二 添加表记录 三 基于对象的跨表查询 四 基于双下划线的跨表查询 五 聚合查询、分组查询、F查询和Q查询
Django基础五之django模型层(二)多表操作 本节目录 一 创建模型 二 添加表记录 三 基于对象的跨表查询 四 基于双下划线的跨表查询 五 聚合查询.分组查询.F查询和Q查询 六 xxx 七 ...
随机推荐
- SpringMVC—Struts2拦截器学习网址整理
引自:http://blog.csdn.net/wp1603710463/article/details/49982683 SpringMVC—Struts2拦截器学习网址整理 最近项目中遇到权限相关 ...
- SD从零开始21-24
[原创]SD从零开始21 输出(Output) 销售的输出类型Output types in SD Output是用于和商业伙伴及系统交换信息的通信方式:你可以为不同的销售凭证如报价单,订单,交货单, ...
- 如何通过REST API登录Portal for ArcGIS
Portal for ArcGIS 提供了两种登录方式:OAuth 2.0和传统的token登录方式. OAuth 2.0的登录原理在之前的一篇文章中已经描述,所以今天就不重复了.下面将介绍对于不支持 ...
- JSP内置对象——session对象
举个购物流程的例子: 这整个购物过程,它是属于一次回话.那么这个session是保存在服务器内存当中,并且它保存着不同用户对应的session,一个用户对应一个session.看下面这幅图: 从图中可 ...
- HttpWatch HttpWatch时间表(HttpWatch Time Charts)
HttpWatch时间表(HttpWatch Time Charts) by:授客 QQ:1033553122 截图 说明 页面事件线(Page Event Lines)
- SQLServer 常见SQL函数
SQL Server SQL函数 by:授客 QQ:1033553122 字符函数 日期函数 数学函数 系统函数
- 2018-10-18 22:15:32 c language
2018-10-18 22:15:32 c language 在屏幕上输出各种类型的数据 我们使用 puts 来输出字符串.puts 是 output string 的缩写,只能用来输出字符串,不能输 ...
- [Android] 设置AlertDialog打开后不消失
最近项目收尾,一堆bug要改,还要对用户操作体验做一些优化,也是忙的不行.周末难得清闲,出去逛逛,看看风景,还好因为习大大要来,南京最近的天气还不错,只是苦了当地的不少农民工,无活可干,无钱可拿.想想 ...
- 【Java入门提高篇】Day4 Java中的回调
又忙了一周,事情差不多解决了,终于有可以继续写我的博客了(各位看官久等了). 这次我们来谈一谈Java里的一个很有意思的东西——回调. 什么叫回调,一本正经的来讲,在计算机程序设计中,回调函数是指通过 ...
- Httprunner学习
一.简介 HttpRunner 是一款面向 HTTP(S) 协议的通用测试框架,只需编写维护一份YAML/JSON脚本,即可实现自动化测试.性能测试.线上监控.持续集成等多种测试需求. 核心特性: 继 ...