• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    oracle—SQL技巧之(二)WMSYS.WM_CONCAT函数实现多行记录用逗号拼接在一起
    需求
    目前接触BI系统,由于业务系统的交易记录有很多,常常有些主管需要看到所有的记录情况,但是又不想滚动,想一眼就可以看到所有的,于是就想到了字符串拼接的形式。

    解决方案:使用Oracle自带的函数 WMSYS.WM_CONCAT,进行拼接。
    函数限制:它的输出不能超过4000个字节。

    为了不让SQL出错,又可以满足业务的需求,超过4000个字节的部分,使用“。。。”
    实现SQL如下
    复制代码 代码如下:

    CREATE TABLE TMP_PRODUCT
    (PRODUCT_TYPE VARCHAR2(255),
    PRODUCT_NAME VARCHAR2(255));

    insert into tmp_product
    select 'A','ProductA'||rownum from dual
    connect by level 100
    union all
    select 'B','ProductB'||rownum from dual
    connect by level 300
    union all
    select 'C','ProductC'||rownum from dual
    connect by level 400
    union all
    select 'D','ProductD'||rownum from dual
    connect by level 500
    union all
    select 'E','ProductE'||rownum from dual
    connect by level 600;
    复制代码 代码如下:

    SELECT PRODUCT_TYPE,
    WM_CONCAT(PRODUCT_NAME) || MAX(STR) AS PRODUCT_MULTI_NAME
    FROM (SELECT PRODUCT_TYPE,
    PRODUCT_NAME,
    CASE
    WHEN ALL_SUM > 4000 THEN
    '...'
    ELSE
    NULL
    END AS STR
    FROM (SELECT PRODUCT_TYPE,
    PRODUCT_NAME,
    SUM(VSIZE(PRODUCT_NAME || ',')) OVER(PARTITION BY PRODUCT_TYPE) AS ALL_SUM,
    SUM(VSIZE(PRODUCT_NAME || ',')) OVER(PARTITION BY PRODUCT_TYPE ORDER BY PRODUCT_NAME) AS UP_SUM
    FROM TMP_PRODUCT)
    WHERE (UP_SUM = 3998 AND ALL_SUM > 4000)
    OR ALL_SUM = 4001)
    GROUP BY PRODUCT_TYPE
    您可能感兴趣的文章:
    • SQL语句练习实例之五 WMS系统中的关于LIFO或FIFO的问题分析
    • mysql 一个较特殊的问题:You can''t specify target table ''wms_cabinet_form''
    • woso.exe,wlso.exe,wmso.exe, woso.exe,ztso.exe 等木马盗号病毒专杀工具
    • iwms access与sql版的安装与转换
    • Android自定义Toast之WindowManager
    • Android利用WindowManager实现悬浮窗
    • 深入理解Android中的Window和WindowManager
    • Android利用WindowManager生成悬浮按钮及悬浮菜单
    • 在当前Activity之上创建悬浮view之WindowManager悬浮窗效果
    • Android中WindowManager与WMS的解析
    上一篇:oracle—SQL技巧之(一)连续记录查询sql案例测试
    下一篇:Oracle创建主键自增表(sql语句实现)及触发器应用
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    oracle—SQL技巧之(二)WMSYS.WM_CONCAT函数实现多行记录用逗号拼接在一起 oracle,SQL,技巧,之,二,WMSYS.WM,