有两个函数wmsys.wm_concat和listagg 1,SELECT wmsys.wm_concat(CATALOG_NAME) FROM "DATASHARE"."RES_CATALOG_CLASSIFY" WHERE PARENT_ID = '2'; 2, SELECT LISTAGG(CATALOG_NAME,',') WITHIN GROUP(ORDER BY CATALOG_NAME) FROM RES_CATALOG_CLASSIFY WHERE
方法1: --Oracle 根据字段值查询其所在的表.字段 DECLARE CURSOR cur_query IS SELECT table_name, column_name, data_type FROM user_tab_columns; a NUMBER; sql_hard VARCHAR2(); vv NUMBER; BEGIN FOR rec1 IN cur_query LOOP a:=; IF rec1.data_type ='VARCHAR2' OR rec1.data_type
首先我们有一个表 查询结果如下: 现在我们想要把USER_NAME这一列的内容 放到一个字段里面去: 一行sql语句解决问题: SELECT STUFF(( SELECT ',' +convert(VARCHAR, USER_NAME) FROM TE_USER FOR XML PATH('')), 1, 1, '') AS UserName 解释一下上面这条语句: 1,首先STUFF函数在上面的语句里的作用是去除拼接的字符串最前面的逗号 STUFF函数的用法大概是STUFF(param1, s
参照: Oracle存储过程中使用游标来批量解析CLOB字段里面的xml字符串 背景:在写存储过程时,需要获取表单提交的信息.表单信息是以xml格式的字符串存储在colb类型的字段dataxml中,如何获取呢?参考百度内容,写一个function(函数),参数有xml格式字符串(dataxml值)和指定节点(nodeName),返回指定节点的值(nodeValue). 编码实现: --get_xml_nodeValue实现 start CREATE OR REPLACE FUNCTION get
在11G以下版本中oracle有自带的函数wm_concat可以实现,如: select wm_concat(id) from table where col='1' 但是在12C版本中此函数无法使用,但可以使用另一种方式实现,如: select xmlagg(xmlparse(content upper(id)||',' wellformed) order by id).getclobval() from table where col='1' 该函数返回结果为一个Blob类型的大字段,且因为
--查询验证 select ltrim(col1) from t1; --去掉字段值左边空格update t1 set col1=ltrim(col1); --去掉字段值右边空格update t1 set col1=rtrim(col1); --去掉字段值两边空格update t1 set col1=trim(col1); t1:表名 clo1:字段
字段值 函数实现: )) ) as begin set @strs=','+@strs+',' ) ) set @str2='' declare SyncOrderCursor cursor for select b.Name from dbo.ShopStore as a inner join dbo.Shop as b on a.StoreGid=b.Gid ))+',%' open SyncOrderCursor fetch next from SyncOrderCursor into @