`
qqjavagood
  • 浏览: 98502 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

WM_CONCAT 函數的用法

阅读更多

    <span style="font-family: Times New Roman; font-size: 16px;">WM_CONCAT 函數的用法</span>
<span style="font-family: Times New Roman;">[size=16px;]select t.rank, t.Name from t_menu_item t;<br><wbr><wbr><wbr> 10 CLARK<br><wbr><wbr><wbr> 10 KING<br><wbr><wbr><wbr> 10 MILLER<br><wbr><wbr><wbr> 20 ADAMS<br><wbr><wbr><wbr> 20 FORD<br><wbr><wbr><wbr> 20 JONES<br><wbr><wbr><wbr> 20 SCOTT<br><wbr><wbr><wbr> 20 SMITH<br><wbr><wbr><wbr> 30 ALLEN<br><wbr><wbr><wbr> 30 BLAKE<br><wbr><wbr><wbr> 30 JAMES<br><wbr><wbr><wbr> 30 MARTIN<br><wbr><wbr><wbr> 30 TURNER<br><wbr><wbr><wbr> 30 WARD<br>
--------------------------------<br>
我们通过 10g 所提供的 WMSYS.WM_CONCAT 函数即可以完成 行转列的效果<br><wbr><wbr><wbr>select t.rank, WMSYS.WM_CONCAT(t.Name) TIME From t_menu_item t GROUP BY t.rank;<br>
DEPTNO ENAME<br>
------ ----------<br><wbr><wbr><wbr> 10 CLARK, KING, MILLER<br><wbr><wbr><wbr> 20 ADAMS, FORD, JONES, SCOTT, SMITH<br><wbr><wbr><wbr> 30 ALLEN, BLAKE, JAMES, MARTIN, TURNER, WARD</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>[/size]</span>

<span style="font-family: Times New Roman; font-size: 16px;">例子如下:</span>

<span style="font-family: Times New Roman; font-size: 16px;">SQL> create table idtable (id number,name varchar2(30));</span>

<span style="font-family: Times New Roman; font-size: 16px;">Table created</span>

<span style="font-family: Times New Roman; font-size: 16px;">SQL> insert into idtable values(10,'ab');</span>

<span style="font-family: Times New Roman; font-size: 16px;">1 row inserted</span>

<span style="font-family: Times New Roman; font-size: 16px;">SQL> insert into idtable values(10,'bc');</span>

<span style="font-family: Times New Roman; font-size: 16px;">1 row inserted</span>

<span style="font-family: Times New Roman; font-size: 16px;">SQL> insert into idtable values(10,'cd');</span>

<span style="font-family: Times New Roman; font-size: 16px;">1 row inserted</span>

<span style="font-family: Times New Roman; font-size: 16px;">SQL> insert into idtable values(20,'hi');</span>

<span style="font-family: Times New Roman; font-size: 16px;">1 row inserted</span>

<span style="font-family: Times New Roman; font-size: 16px;">SQL> insert into idtable values(20,'ij');</span>

<span style="font-family: Times New Roman; font-size: 16px;">1 row inserted<br>
SQL> insert into idtable values(20,'mn');</span>

<span style="font-family: Times New Roman; font-size: 16px;">1 row inserted</span>

<span style="font-family: Times New Roman; font-size: 16px;">SQL> select * from idtable;</span>

<span style="font-family: Times New Roman;">[size=16px;]<wbr><wbr><wbr><wbr><wbr><wbr><wbr> ID NAME<br>
---------- ------------------------------<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 10 ab<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 10 bc<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 10 cd<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 20 hi<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 20 ij<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 20 mn</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>[/size]</span>

<span style="font-family: Times New Roman; font-size: 16px;">6 rows selected<br>
SQL> select id,wmsys.wm_concat(name) name from idtable<br>
2 group by id;</span>

<span style="font-family: Times New Roman;">[size=16px;]<wbr><wbr><wbr><wbr><wbr><wbr><wbr> ID NAME<br>
---------- --------------------------------------------------------------------------------<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 10 ab,bc,cd<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 20 hi,ij,mn</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>[/size]</span>

<span style="font-family: Times New Roman; font-size: 16px;">SQL> select id,wmsys.wm_concat(name) over (order by id) name from idtable;</span>

<span style="font-family: Times New Roman;">[size=16px;]<wbr><wbr><wbr><wbr><wbr><wbr><wbr> ID NAME<br>
---------- --------------------------------------------------------------------------------<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 10 ab,bc,cd<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 10 ab,bc,cd<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 10 ab,bc,cd<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 20 ab,bc,cd,hi,ij,mn<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 20 ab,bc,cd,hi,ij,mn<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 20 ab,bc,cd,hi,ij,mn</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>[/size]</span>

<span style="font-family: Times New Roman; font-size: 16px;">6 rows selected</span>

<span style="font-family: Times New Roman; font-size: 16px;">SQL> select id,wmsys.wm_concat(name) over (order by id,name) name from idtable;</span>

<span style="font-family: Times New Roman;">[size=16px;]<wbr><wbr><wbr><wbr><wbr><wbr><wbr> ID NAME<br>
---------- --------------------------------------------------------------------------------<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 10 ab<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 10 ab,bc<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 10 ab,bc,cd<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 20 ab,bc,cd,hi<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 20 ab,bc,cd,hi,ij<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 20 ab,bc,cd,hi,ij,mn</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>[/size]</span>

<span style="font-family: Times New Roman; font-size: 16px;">6 rows selected</span>

<span style="font-family: Times New Roman; font-size: 16px;">个人觉得这个用法比较有趣.</span>

<span style="font-family: Times New Roman; font-size: 16px;">SQL> select id,wmsys.wm_concat(name) over (partition by id) name from idtable;</span>

<span style="font-family: Times New Roman;">[size=16px;]<wbr><wbr><wbr><wbr><wbr><wbr><wbr> ID NAME<br>
---------- --------------------------------------------------------------------------------<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 10 ab,bc,cd<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 10 ab,bc,cd<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 10 ab,bc,cd<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 20 hi,ij,mn<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 20 hi,ij,mn<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 20 hi,ij,mn</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>[/size]</span>

<span style="font-family: Times New Roman; font-size: 16px;">6 rows selected</span>

<span style="font-family: Times New Roman; font-size: 16px;">SQL> select id,wmsys.wm_concat(name) over (partition by id,name) name from idtable;</span>

<span style="font-family: Times New Roman;">[size=16px;]<wbr><wbr><wbr><wbr><wbr><wbr><wbr> ID NAME<br>
---------- --------------------------------------------------------------------------------<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 10 ab<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 10 bc<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 10 cd<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 20 hi<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 20 ij<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 20 mn</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>[/size]</span>

<span style="font-family: Times New Roman; font-size: 16px;">6 rows selected</span>

 
0
0
分享到:
评论

相关推荐

    wm_concat函数所需资源包

    标题中的"wm_concat函数所需资源包"是指解决`WM_CONCAT()`在新版本Oracle中无法使用的问题的相关资源集合。 描述中提到的链接指向了一篇CSDN博客文章,该文章提供了详细的解决方案。在这里,我们将深入探讨`WM_...

    oracle 创建wm_concat函数

    ### Oracle 创建wm_concat函数 #### 知识点一:Oracle 10G及以下版本的wm_concat函数自定义实现 在Oracle 10G及更早版本中,并没有内置的`wm_concat`函数,该函数主要用于对一组字符串进行连接操作。为了在这些...

    wm_concat函数DDL.zip

    自定义`wm_concat`函数的一种常见方法是创建一个聚合函数,通常使用PL/SQL实现。以下是一个简单的例子: ```sql CREATE OR REPLACE FUNCTION WM_CONCAT (p_val VARCHAR2) RETURN VARCHAR2 PARALLEL_ENABLE ...

    解决Oracle没有WM_CONCAT函数.zip

    标题“解决Oracle没有WM_CONCAT函数”暗示了这个问题的背景:用户在尝试使用WM_CONCAT时遇到了问题,或者想要在不支持此函数的数据库环境中实现类似的功能。这可能是因为他们正在处理需要聚合多个字符串字段的查询,...

    ORA-00904: "WM_CONCAT": 标识符无效

    在这个场景下,错误信息提到的是"WM_CONCAT"函数,这表明在Oracle 19c数据库环境中,用户尝试使用WM_CONCAT函数,但系统无法识别该函数,提示其为无效的标识符。WM_CONCAT是Oracle 10g及更早版本中用于字符串合并的...

    自写函数用于替换wm_concat函数.zip

    本压缩包文件"自写函数用于替换wm_concat函数.zip"提供了一个解决方案,即一个自定义的SQL函数,用于在不支持`WM_CONCAT`的环境中合并行数据。 首先,我们需要理解`WM_CONCAT`的作用。在Oracle 10g及更早版本中,`...

    ORA-00904 WMSYS.WM_CONCAT标识符无效解决方案

    **WM_CONCAT函数的背景:** 在Oracle 10g及更早版本中,WMSYS.WM_CONCAT是一个实用的内置函数,允许用户将多个字符串合并成一个单一的字符串,类似于其他数据库系统中的CONCAT或者STRING_AGG函数。然而,由于性能和...

    重写oracle wm_contact函数

    ### 重写Oracle wm_concat函数的目标 重写`wm_concat`函数的主要目的是为了提高函数的灵活性和性能。例如,在处理大量数据时,通过自定义函数可以更好地控制连接过程中的分隔符、最大长度等参数,从而实现更为精细...

    wmsys.wm_concat详细示例.txt

    根据给定文件的信息,我们可以深入探讨`wmsys.wm_concat`的使用方法及其在不同SQL语句中的应用。 ### 基础用法 `wmsys.wm_concat`函数的基本语法如下: ```sql wmsys.wm_concat(column1, column2, ..., columnN) ...

    oracle行转列聚合函数WMSYS.WM_CONCAT

    #### 二、WMSYS.WM_CONCAT函数介绍 `WMSYS.WM_CONCAT`函数是Oracle数据库中的一个内置函数,主要用于将多个字符串连接成一个单一的字符串。该函数特别适用于处理大量数据的聚合操作,尤其是在需要将多行记录转换为...

    Oracle重建WMSYS用户及WMSYS.WM_CONCAT函数

    当我们遇到"ORA-00904: 'WMSYS"."WM_CONCAT": 标识符无效"这样的错误时,这通常意味着WMSYS.WM_CONCAT函数无法正常工作或被正确识别。WM_CONCAT函数在早期的Oracle版本中是一个实用的聚合函数,用于将多个字符串合并...

    BLOG_Oracle_wm_concat包的订制.pdf

    `LISTAGG`分析函数的使用方法如下: ```sql SELECT LISTAGG(column_name, delimiter) WITHIN GROUP (ORDER BY column_name) FROM table_name GROUP BY group_column; ``` 在这里,`column_name`是你希望聚合的列名,...

    oracle wm_concat 列转行 逗号分隔

    Oracle中的WM_CONCAT函数是一个非标准的聚合函数,主要用于将多行数据合并成单行,以...总之,Oracle的WM_CONCAT函数虽然方便,但在新的Oracle版本中已不再推荐,应考虑使用更现代的聚合函数或方法来实现相同的效果。

    oracle合并列的函数wm_concat的使用详解

    在Oracle数据库中,有时我们需要将同一列中的多个值合并成一个字符串,这时就可以使用`WM_CONCAT`函数。`WM_CONCAT`是一个非标准的Oracle函数,它在Oracle 9i及以后的版本中被广泛使用,但在Oracle 11g R2版本中由于...

    mysql group_concat()函数用法总结

    本文实例讲述了mysql group_concat()函数用法。分享给大家供大家参考,具体如下: group_concat(),手册上说明:该函数返回带有来自一个组的连接的非NULL值的字符串结果。比较抽象,难以理解。 通俗点理解,其实是...

    MySQL GROUP_CONCAT限制解决方案

     GROUP_CONCAT函数可以拼接某个字段值成字符串,默认的分隔符是 逗号,即”,” ,  如果需要自定义分隔符可以使用 SEPARATOR  如: SELECT GROUP_CONCAT(name SEPARATOR '_') FROM user 限制:  GROUP_CONCAT...

    oracle_函数介绍

    ### Oracle函数介绍(一):著名函数之单值 在Oracle数据库系统中,函数是非常重要的组成部分,它们提供了强大的数据...在未来的学习过程中,建议深入研究更多复杂的函数组合和用法,以便更好地应对实际工作中的挑战。

    Gbase 8s内置函数之聚合函数

    在Gbase 8s中,聚合函数可以分为多种类型,如COUNT、SUM、AVG、MAX/MIN、WM_CONCAT等每种函数都有其特定的应用场景和使用方法。 COUNT函数 COUNT函数是Gbase 8s中最基本的聚合函数,它可以对查询结果中的行数...

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

    在Oracle数据库中,有时我们需要将多行记录合并成一个单一的字符串,以便于...不过,需要注意的是,从Oracle 11g R2版本开始,推荐使用`LISTAGG`函数代替`WM_CONCAT`,因为它更稳定,且支持更复杂的分组和排序操作。

Global site tag (gtag.js) - Google Analytics