如何将Oracle查询结果多行数据转成一行平铺显示?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将Oracle查询结果多行数据转成一行平铺显示?相关的知识,希望对你有一定的参考价值。
如何将Oracle查询结果多行数据转成一行平铺显示,如下图上面多行显示的是plsql查出来的结果,要实现下面的显示一行的效果。systemcode字段是主表,其它的是子表
具体一点,请写出sql参考一下
追答systemcode,max(字段1),max(字段2)。。。。from table group by systemcode
大约就这样,因为字段1和字段2中其他地方都是null,所以max自然就会找到那个最大值,也就是有值的地方,自然也就在一行了。
你现在这个结构应该是case when以后得到的吧,直接在case when的外面套一个max,后面加上分组就可以了
SQL SERVER2000将多行查询结果拼接到一行数据
处理前的查询结果如上图:
通过借助SQL变量的定义
DECLARE @Scope varchar(1000) DECLARE @Num int SET @Scope=\'\' SET @Num = 1 SELECT @Scope=@Scope+convert(varchar(8),@Num)+\'、\'+DescScope+ DescOper+\';\', @Num = @Num+1 From fuel_contractQualityNew Where ContractID=\'012009000100\' SELECT ContractID,@Scope FROM fuel_contractQualityNew Where ContractID=\'012009000100\' GROUP BY ContractID
实现了一下效果:
//创建拼接描述SQL的函数 CREATE FUNCTION dbo.f_str(@contractID varchar(50)) RETURNS VARCHAR(8000) AS BEGIN DECLARE @Scope varchar(1000) DECLARE @Num int SET @Scope=\'\' SET @Num = 1 SELECT @Scope=@Scope+convert(varchar(8),@Num)+\'\'+DescScope+ DescOper+\';\', @Num = @Num+1 From fuel_contractQualityNew where ContractID= @contractID RETURN @Scope END GO
以上是关于如何将Oracle查询结果多行数据转成一行平铺显示?的主要内容,如果未能解决你的问题,请参考以下文章