加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

sql – db2中的Listagg更换方案

发布时间:2021-05-23 22:22:12 所属栏目:编程 来源:网络整理
导读:我的客户正在行使没有listagg函数的db2数据库,但我必要以某种方法在一个字段内聚合主键信息. 此刻(对付Oracle)我行使它作为更大查询的一部门: SELECT LISTAGG(COLUMN_NAME || ':' || CONTENT,',') WITHIN GROUP (ORDER BY COLUMN_NAME || ':' || CONTENT) FR

我的客户正在行使没有listagg函数的db2数据库,但我必要以某种方法在一个字段内聚合主键信息.

此刻(对付Oracle)我行使它作为更大查询的一部门:

SELECT LISTAGG(COLUMN_NAME || ':' || CONTENT,',') 
WITHIN GROUP (ORDER BY COLUMN_NAME || ':' || CONTENT) 
FROM TABLE
WHERE ROW_IDENTIFIER_ID = I.REC_ID AND I.TABLE_RESULT_ID = T.REC_ID

在DB2版本9.7修订包41之前,有另一种要领可以在db2数据库中获取listagg函数的功效吗?

我客户数据库的版本:
Linux – 企业处事器版9.7,版本号08060107
我通过执行这些选择获得它:

SELECT * FROM TABLE(SYSPROC.ENV_GET_INST_INFO()) AS SYSTEMINFO;
SELECT * FROM TABLE(SYSPROC.ENV_GET_PROD_INFO()) AS SYSTEMINFO;
SELECT * FROM TABLE(SYSPROC.ENV_GET_SYS_INFO()) AS SYSTEMINFO;

我认可我不大白,怎么也许是9.7,可是没有listagg成果?! :狐疑:

我也做过了:

SELECT * FROM SYSCAT.FUNCTIONS

我回到了这个function list,可是在谜底中没有更换办理方案中提到的xmltext或xmlgroup等成果:(.
客户行使什么尼安德特人数据库?可能我错过了什么?

感谢你的回覆.

办理要领

假如您的DB2版本支持pureXML(至少是DB2 for LUW 9.1,我信托DB2 9 for z / OS),除了上面提到的@ PM77-1之外,您还可以行使XMLAGG函数:
select xmlserialize(
  xmlagg(
    xmlconcat(
      xmltext(column_name),xmltext(':'),xmltext(content),xmltext(',')
    )
  ) as varchar(10000)
) 
from 
  yourtable 
...

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读