SqlServer和Oracle从多行记录(数据集)中查询结果并拼接成一个字符串的SQL语句(纵表数据转成拼接的文本)

原创 2015年07月08日 09:12:54

使用情景:

例如:需要从学生成绩表中,查询分数大于95分的所有学生编号,用逗号分隔成一个字符串。

 

准备测试数据:

create table score (id int,score int)

insert into score values(1,90)
insert into score values(2,96)
insert into score values(3,99)

 

现在需要通过一个语句查询重“2,,3”这个结果字符串。

SQL Server语句如下:

select substring((
SELECT ','+cast(id as varchar(90)) FROM score where  score>95 FOR XML PATH,TYPE
).value('.','varchar(max)'),2,100000)

或者简化版为:

select substring((
SELECT ','+cast(id as varchar(90)) FROM score where  score>95 FOR XML PATH('')
),2,100000)

 

Oracle则更简单:

select wm_concat(id) from score where  score>95

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

关于SQL Server将一列的多行内容拼接成一行的问题讨论

昨天遇到一个SQL Server的问题:需要写一个储存过程来处理几个表中的数据,最后问题出在我想将一个表的一个列的多行内容拼接成一行 比如表中有两列数据 : ep_classes  e...
  • RolaMao
  • RolaMao
  • 2012年07月14日 11:05
  • 58569

SqlServer 如何将查询出的多行数据拼成一个字符串返回

我们在查询或做报表时,会遇到这样的情况,一个主表table_main,一个字表table_sub 查询时需要显示主表的字段,然后把子表的内容拼成一个字符串与主表一起显示 stuff(select '...

用SQL将查询出来的多列的值拼接成一个字符串

用SQL将查询出来的多列的值拼接成一个字符串   MySQL中:   [sql]  -- 单列拼接,先查出一行,再加上逗号,接着拼接 查出的下一行   select...

sql查询将多个结果合并成一个字符串

1.user表:id name roles 1 张三 null 2 李四 null 3 王五 null role表 id name 1 管理员 2 业...

Oracle中将查询出的多条记录的某个字段拼接成一个字符串的方法

11g里面用listagg: select listagg(name,',') within (order by id) from table 10g里面用wm_concat: select...
  • resigshy
  • resigshy
  • 2012年09月04日 14:21
  • 14650

将sql的多行查询结果拼接成一个字符串

将sql的多行查询结果拼接成一个字符串 DECLARE @S VARCHAR(MAX)= ( SELECT STUFF( (select distinct ','+CAST(C1 AS VARC...

mysql查询结果拼接成字符串

SELECT GROUP_CONCAT(at_id) AS xg FROM (SELECT at_id,COUNT(at_id) AS count FROM wyc_a...
  • scchary
  • scchary
  • 2015年06月15日 12:30
  • 6089

用SQL将查询出来的多列的值拼接成一个字符串

MySQL中: -- 单列拼接,先查出一行,再加上逗号,接着拼接 查出的下一行 select group_concat(E.SUPPORT) from ENGINES E where E.X...

sql查询 ,多行数据合并成一行,并且显示合并后某一列的值拼接结果

使用stuff + for xml path 解决sql查询 order by之后拼接列,并显示拼接后的字符串

用SQL将Oracle中同一列的多行记录拼接成一个字符串

-- 原始数据 -- a 111 -- b 222 -- a 333 -- a 444 -- b 555 -- 最终结果 -- a 111*333*444 SELECT L...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SqlServer和Oracle从多行记录(数据集)中查询结果并拼接成一个字符串的SQL语句(纵表数据转成拼接的文本)
举报原因:
原因补充:

(最多只允许输入30个字)