`
xsl2007
  • 浏览: 134575 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

拼接字符串函数wm_concat

 
阅读更多
首先让我们来看看这个神奇的函数wm_concat(列名),该函数可以把列值以","号分隔起来,并显示成一行,接下来上例子,看看这个神奇的函数如何应用

准备测试数据


SQL> create table test(id number,name varchar2(20));

SQL> insert into test values(1,'a');

SQL> insert into test values(1,'b');

SQL> insert into test values(1,'c');

SQL> insert into test values(2,'d');

SQL> insert into test values(2,'e');


SQL> commit;


效果1 : 行转列


SQL> select wm_concat(name) from test;

WM_CONCAT(NAME)

-------------------------------------------------------------------------

a,b,c,d,e


效果2: 把结果里的逗号替换成"|"


SQL> select replace(wm_concat(name),',','|') from test;

REPLACE(WM_CONCAT(NAME),',','|')

-----------------------------------------------------------------------

a|b|c|d|e



效果3:按ID分组合并name


SQL> select id,wm_concat(name) name from test group by id;

ID NAME

---------- ------------------------------

1 a,b,c

2 d,e


懒人扩展用法:

案例:我要写一个视图,类似"create or replace view as select 字段1,...字段50 from tablename" ,基表有50多个字段,要是靠手工写太麻烦了,有没有什么简便的方法? 当然有了,看我如果应用wm_concat来让这个需求变简单


SQL> select 'create or replace view as select '|| wm_concat(column_name) || ' from dept'from user_tab_columns where table_name='DEPT';

'CREATEORREPLACEVIEWASSELECT'||WM_CONCAT(COLUMN_NAME)||'FROMDEPT'

--------------------------------------------------------------------------------

create or replace view as select DEPTNO,DNAME,LOC from dept




分享到:
评论

相关推荐

    解决Oracle没有WM_CONCAT函数.zip

    在Oracle数据库中,WM_CONCAT是一个非常实用的聚合函数,用于将一组字符串连接成一个单一的字符串,类似于SQL Server中的STRING_AGG或MySQL中的GROUP_CONCAT。然而,Oracle官方并没有提供这个函数,它是一个第三方...

    Oracle10g自定义聚合函数(字符串拼接)

    * 超大字符串拼接,单个字符串4000、分隔符100,可拼出超4000的超长字符串 * 可自定义指定分隔符separator * 可自定义指定排序字段sequence,对于数字或日期类型的字段,先转为字符串,比如to_char(line, 'FM000'...

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

    例如,尝试在一个测试表上使用WM_CONCAT函数进行字符串拼接操作。 值得注意的是,重建WMSYS用户和其函数的操作必须谨慎进行,因为这涉及到核心系统组件的改动。在进行此类操作之前,应咨询Oracle数据库管理员或官方...

    SQL SERVER2012中新增函数之字符串函数CONCAT详解

    在SQL Server 2012中,引入了一个新的字符串函数——CONCAT,它的主要功能是方便地连接多个字符串。在CONCAT函数出现之前,我们通常使用 "+" 运算符来连接字符串,但这种方法存在一个问题,即如果其中任何一个字符串...

    MySQL GROUP_CONCAT限制解决方案

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

    oracle中将列拼接字段函数

    `WMSYS.WM_CONCAT`函数是Oracle提供的一个用于字符串拼接的强大工具。与SQL中的`||`运算符不同的是,`WM_CONCAT`可以接受多个参数并将它们连接起来形成一个单一的字符串,特别适用于需要合并多个列值的情况。此函数...

    oracle实现行转列功能,并使用逗号进行隔开拼接,成为一条数据.pdf

    WM_CONCAT 函数是一个聚合函数,可以将多行数据合并成一个字符串。使用 WM_CONCAT 函数可以实现行转列功能,但是需要注意的是,WM_CONCAT 函数已经被 Oracle 弃用,不建议使用。 示例代码: ```sql SELECT sfc_no, ...

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

    首先,`WMSYS.WM_CONCAT`是Oracle提供的一种字符串拼接函数,它可以将相同分组内的多行数据以特定的分隔符(默认为逗号)连接起来。例如,如果我们有一个产品表,其中包含多个类型的产品和对应的产品名称,我们可以...

    聚集函数(自定义分隔符拼接字符串)

    在Oracle中,`WM_CONCAT`函数可以用来拼接字符串,但是它不是标准的Oracle功能,且在高版本中已被废弃,因为它可能会因为结果过长导致错误。为了解决这个问题,我们可以创建一个自定义的聚集函数,它允许我们指定...

    oracle查询表的所有列并用逗号隔开

    2. **WM_CONCAT 函数**:这是Oracle提供的一个聚合函数,用于将一组字符串连接成一个字符串,中间以指定的分隔符隔开。在这个例子中,我们使用它来连接列名,并以逗号作为分隔符。 #### 实现步骤 为了实现上述目标...

    oracle实现多行合并的方法

    `WMSYS.WM_CONCAT`是Oracle的一个内部函数,用于将特定列中的多行数据合并成一个单一的字符串。这个函数在GROUP BY语句中使用,允许你在分组后的结果集中合并每个组的特定列的值。例如,假设我们有一个名为`t_menu_...

    创建视图和方法

    - 使用`wmsys.wm_concat`函数将`t_lm_bas_stand_leavel`表中的`stand_leavel_name`字段值拼接成一个字符串。 - 使用`REPLACE`函数将拼接后的字符串中的逗号替换为`'>>'`。 - 使用`SUBSTR`函数截取字符串中从第一...

    通过SQL语句实现行列转换的几种方法

    通过使用`decode()`函数配合`max()`函数,可以将多行数据转换为单一的字符串。然而,这种方法有一个明显的局限性:它要求要转换的行数是固定的。如果行数是动态变化的,那么就需要编写复杂的逻辑来适应不同的行数。...

    ORACLE SQL 优化 存储过程 PROCEDURE

    文章首先介绍了基本的 SQL 语句,包括 LEFT JOIN 和 INNER JOIN 的区别、LIKE 和 NOT LIKE 的模糊查询、DECODE 函数的使用、CASE WHEN THEN 语句的应用、字符串拼接的方法、日期函数 TO_DATE 和 TO_CHAR 的使用、...

    Oracle实用函数大全

    `substr`函数允许从字符串中提取子串,参数包括原始字符串、起始位置及可选长度: ```sql SELECT SUBSTR('accp', 5, 4) FROM DUAL; SELECT SUBSTR('accp', 5) FROM DUAL; ``` #### 3. 字符查找 `instr`函数返回子...

    oracle列合并的实现方法

    在Oracle数据库中,有时我们需要将同一表中多个列的值合并为一个字符串,这被称为列合并。Oracle提供了多种方法来实现这一功能,特别是在不同版本中,这些方法有所不同。以下是Oracle列合并的一些常用方法: 1. **...

    Oracle中SQL语句连接字符串的符号使用介绍

    - Oracle提供了多种字符串函数,如 `LPAD`, `RPAD`, `SUBSTR`, `TRIM`, `UPPER`, `LOWER` 等,它们可以与 `||` 符号一起使用,以在连接字符串时进行格式化和操作。例如,如果你需要在每个 `tcdm` 前加一个前缀,...

    oracle培训值得拥有

    此外,LISTAGG()和wm_concat()用于字符串拼接,REGEXP_SUBSTR()和REGEXP_REPLACE()则支持正则表达式操作,极大地增强了查询灵活性。CONNECT BY用于处理层次结构数据,构建数据树形展示,适用于组织架构或分类层次的...

Global site tag (gtag.js) - Google Analytics