DB2创建function(二)

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

DB2创建function(二),介绍建立返回的内容为表集合。调用示例如下

?





1

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


建立的function示例如下:

?





1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

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(二)

时间: 2024-08-01 17:32:46

DB2创建function(二)的相关文章

DB2创建function(一)

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 CREATE FUNCTION "FAS"."GET_ALL_NAME" ( "A_ID" BIGINT )   RETURNS VARCHAR(9000)   SPECIFIC "SQL131107190046233"--SPECIFIC名称不能与其他FUNCTION的重复

【VMCloud云平台】SCOM配置(十三)-创建SLO(二)

SCCM中有一种功能叫做安全基线扫描,可以针对安全策略来设置基线检测.在SCOM中也有相似的功能,那就是SLO,可以针对某些条件进行SLO判断,即上一篇讲完创建SLO规则后,这一篇将讲述如何利用该SLO进行创建仪表盘,如何以报表形式呈现(紫色为完成实施,红色为实施中): 1. 登录到SCOM管理控制台,点击我的工作区,右键新建-仪表盘 2. 接着选择视图布局-服务级别仪表板: 3. 输入仪表板名称: 4. 选择添加SLO规则: 5. 确认摘要并点击创建: 6. 创建成功: 7. 稍等片刻就可以看

ASP.NET Web API 控制器创建过程(二)

ASP.NET Web API 控制器创建过程(二) 前言 本来这篇随笔应该是在上周就该写出来公布的,因为身体跟不上节奏感冒发烧有心无力,这样的天气感冒发烧生不如死,也真正的体会到了什么叫病来如山倒,病去如抽丝.这两天状态才好了一点,让我理解了什么才是革命的本钱,希望大家也多保重身体. 好了,还是回归主题,对于上一篇的内容解说的仅仅是ASP.NET Web API控制器创建过程中的一个局部知识,在接着上篇内容解说的之前,我会先回想一下上篇的内容,而且在本篇里进行整合,让我们要看到的是一个整个的创

怎样用MySQL创建function

以前使用SQL SERVER的时候经常用function,对一些数据的处理比较方便,现在数据库转移到mysql上以后,同样也希望能保留相同的功能,庆幸的是mysql也支持function,现来分享下在mysql中怎样创建function 工具/原料 MySQL MySQL Workbench 方法/步骤 1在MySQL中创建function的写法和SQL SERVER还是有区别的,先看一下在MySQL中正确的写法是什么样,在这个function中目的是返回根据传进年龄参数计算出同龄人有多少,并将

ASP.NETWeb API 控制器创建过程(二)

ASP.NET Web API 控制器创建过程(二) 前言 本来这篇随笔应该是在上周就该写出来发布的,由于身体跟不上节奏感冒发烧有心无力,这种天气感冒发烧生不如死,也真正的体会到了什么叫病来如山倒,病去如抽丝.这两天状态才好了一点,让我理解了什么才是革命的本钱,希望大家也多保重身体. 好了,还是回归主题,对于上一篇的内容讲解的只是ASP.NET Web API控制器创建过程中的一个局部知识,在接着上篇内容讲解的之前,我会先回顾一下上篇的内容,并且在本篇里进行整合,让我们要看到的是一个整个的创建过

Android4.2.2多媒体架构MediaPlay的创建过程分析(二):解析器的创建

本文均属自己阅读源码的点滴总结,转账请注明出处谢谢. 欢迎和大家交流.qq:1037701636 email: [email protected] 在上一文中,我们分析到setDataSource_pre()函数最终实际返回的是StagefrightPlayer类(class StagefrightPlayer : public MediaPlayerInterface). 1 .继续分析setDataSource 函数: // now set data source setDataSource

如何在开启了log-bin的MySQL Server中创建FUNCTION

在MySQL主从复制机器的master的数据库中创建function,报出如下错误: Error Code: 1418. This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators va

创建动态二维数组

1 //======================================================== 2 //创建动态二维数组a [M] [N]: 3 //思路一:二维数组的抽象理解: 4 //思路二:二维数组在内存中实际排列: 5 //======================================================== 6 #include <stdio.h> 7 #include <stdlib.h> 8 #include <

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 Servicesincorporated, Guangzhou510300) Abstract  The latest version of DB QueryAnalyzer is 6.03 In DB Query Analyzer 6.03, without changing any Windows OS s