11g里面用listagg: select listagg(name,',') within (order by id) from table 10g里面用wm_concat:select wm_concat(name) from table wm_concat是undocument的listagg是11g document的
有两个函数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
查询表中的一个字段,返回了多行,就把这么多行的数据都拼成一个字符串. 例: id name 1 aa 2 bb 3 cc 要的结果是"aa,bb,cc" 以前有过这种需求,我用存储过程拼接,或者在程序中取出数据拼接,就这样暂时解决了. 可是事后一直在想是不是可以直接查出来,这样就简单多了,oracle中应该有这样的方法的,可是一直没找到,呵呵,今天终于解决了. select WMSYS.WM_CONCAT(a.name) fr
#for xml path(param)--将查询结果以xml格式输出 select id,name from table1 for xml path --id和name为table1的真实字段 - path后面没有参数时,每行数据被默认<row>标签包裹,每行列数据被被其列名标签包裹. 上面sql的结果可如下: <row> <id></id> <name>holab</name> </row> <row> &
最近在项目中遇到个问题,需要将表中某列字段合并成字符串输出,如果直接通过代码全部读取出来,再遍历进行拼接显然不是最好的方法,所以想着能否在数据读取的时候直接拼接好返回,网上搜了可通过for xml来实现. 首先,准备好需要的数据,脚本如下: if exists (select * from sysObjects where id=object_id('Student')) drop table Student go create table Student ( Id int, Name ) )
mysql替换表的字段里面内容,如例子: mysql> select host,user from user where user='testuser'; +-----------------------+----------+| host | user |+-----------------------+----------+| localhost.localdomain | testuser | +-----------------------+-
错误信息:System.Web.Services.Protocols.SoapException: System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.Xml.XmlException: Name cannot begin with the '1' character, hexadecimal value 0x31. Line 1, position 918.