使用group by + WMSYS.WM_CONCAT来实现数据:sql样例背景:姓名和年龄,这里数据排除同名同姓,相同年龄的姓名的人可能很多,用sql做一个数据合并,把相同年龄段的人的姓名用逗号拼接SELECT AGE AS AGE, WMSYS.WM_CONCAT(NAME) as NAMEFROM USER_INFOGROUP BY AGE结果如下:...
SELECT DISTINCT T.NAME,
REPLACE(REGEXP_SUBSTR(T.TESTSTR, '[^,]+', 1, LEVEL), ',', ' ') TESTSTR
FROM TEST2 T
WHERE 1 = 1
CONNECT BY LEVEL <= (LENGTH(T.TESTSTR) - LENGTH(REPLACE(T.TESTSTR, ',', '')) + 1);
-- Create table TEST2
create
比如有
一个
销售表sal,一笔单子可能销售了
多个
商品,因此还有
一个
具体商品信息的表sal1,sal表的主键salcode是sal1表的外键。
现在需要把商品明细表中,同一笔单子的商品名goods,以
逗号
链接的方式查询出来并更新到销售表的销售商品goodslist字段
sql语句如下:
update sal set goodslist=(select wm_concat(disti...
有两个函数wmsys.wm_concat和listagg
1,SELECT wmsys.wm_concat(CATALOG_NAME) FROM "DATASHARE"."RES_CATALOG_CLASSIFY" WHERE PARENT_ID = '2';
SELECT LISTAGG(CATALOG_NAME,',') WITHIN GROUP(ORDER BY C...
oracle
的wm_concat 和mysql 的group_concat类似,主要是先
分组
,然后将
分组
后输入同组的的内容用","
拼接
在一期例子:SELECT a.period_id,
wm_concat( b.activity_id) ACTIVITY_ID,
wm_concat(a.lottery_number) LOTTERY_NUMBER,
wm_concat(b.perio...
select row_number() over(partition by user_id order by create_date asc) rn, t.user_id, t.create_date from tableA t;
这样rn列就是每个人从1开始编好号的一列。
Oracle
逗号
分隔
是指在
Oracle
数据
库中使用
逗号
对字段进行
分隔
的方法,常用于SELECT语句中的列名列表中,
逗号
用于将一列名与另一列名隔开,以便进行查询、排序、筛选、计算等操作。
逗号
分隔
还常用于INSERT语句中的值列表中,
逗号
用于将一组值与另一组值隔开,以便将
数据
插入
数据
库中的对应字段中。在开发
Oracle
应用程序时,
逗号
分隔
也可用于传递
多个
参数或条件值给SQL语句。
逗号
分隔
在
Oracle
中有时也被称为
逗号
运算符或列
分隔
符。使用
逗号
分隔
时,需要注意
逗号
前后的空格是否正确,以免引起语法错误或查询结果错误。在处理大量
数据
时,
逗号
分隔
的效率相对于其它
分隔
方式较高,但需注意
数据
的类型、长度、精度等问题。
Oracle
还提供了一些内置函数(如LISTAGG())可用于将
多个
数据
行的某些列以
逗号
分隔
的形式
拼接
成
一个
字符串,以便于分析、展示和导出为CSV文件等。总之,
逗号
分隔
在
Oracle
数据
库中应用广泛且十分重要,掌握正确使用
逗号
分隔
的技巧可以提高开发工作的效率和
数据
处理的准确性。