我们专注攀枝花网站设计 攀枝花网站制作 攀枝花网站建设
成都网站建设公司服务热线:400-028-6601

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

oracle怎么一行表示,oracle 或用什么表示

oracle同一张表几个数据怎么一行显示,如下

select 

创新互联服务项目包括宣州网站建设、宣州网站制作、宣州网页制作以及宣州网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,宣州网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到宣州省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

sum(case when t.lb='随迁子女'and t.jieduan='3'and t.hang='8' then t.cyinj+t.cernj+t.csannj+t.csinj else 0 end) 一,

sum(case when t.lb='其中:外省迁入'and t.jieduan='3' and t.hang ='9' then t.cyinj+t.cernj+t.csannj+t.csinj else 0 end) 二,

sum(case when t.lb='总计' and t.jieduan='3' then t.cyinj+t.cernj+t.csannj+t.csinj else 0 end) 三,

sum(case when t.cxlb in ('111','112') and t.jieduan='3' and t.lb='总计' then t.cyinj+t.cernj+t.csannj+t.csinj else 0 end) 四,

sum(case when t.cxlb in ('121','122','123') and t.jieduan='3' and t.lb='总计' then t.cyinj+t.cernj+t.csannj+t.csinj else 0 end) 五,

sum(case when t.cxlb in ('210','220') and t.jieduan='3' and t.lb='总计' then t.cyinj+t.cernj+t.csannj+t.csinj else 0 end) 六

from xsrs t

先试试,有问题继续追问,别名我起的一,二,三……,你可以自己改下别名

oracle 显示表内容时 什么语句可以把显示的列都在一行显示完成

需要用wm_concat将各字段连接。

如,test表中有如下数据:

现要将name字段连接,显示在一行,可用如下语句:

select wm_concat(name) from test;

结果:

Oracle里单对多数据如何在一行中展示

Oracle一列的多行数据拼成一行显示字符

oracle 提供了两个函数WMSYS.WM_CONCAT 和 ListAgg函数。

先介绍:WMSYS.WM_CONCAT

例:

id name

1 aa

2 bb

3 cc

要的结果是"aa,bb,cc"

select WMSYS.WM_CONCAT(a.name) from user a

这样的话,查询出的结果:"aa,bb,cc"

分隔符如果不需要用英文的逗号,需要改成别的符号比如分号的,可以用下面的方法替换下:

select replace(WMSYS.WM_CONCAT(a.name),',',';') from user a

结果:"aa;bb;cc"

======================================================================

ListAgg函数

listagg函数的语法结构如下:

LISTAGG( [,]) WITHIN GROUP (ORDER BY ) [OVER (PARTITION BY )]

listagg虽然是聚合函数,但可以提供分析功能(比如可选的OVER()子句)。使用listagg中,下列中的元素是必须的:

?需要聚合的列或者表达式

?WITH GROUP 关键词

?分组中的ORDER BY子句

例子:

DEPTNO ENAME

--------- ----------

10 CLARK

10 KING

10 MILLER

20 ADAMS

20 FORD

20 JONES

按照DEPTNO字段分组,对结果集进行字符串聚合,结果如下:

DEPTNO AGGREGATED_ENAMES

--------- -------------------------

10 CLARK,KING,MILLER

20 ADAMS,FORD,JONES

SQL:

SELECT deptno,LISTAGG(ename, ',') WITHIN GROUP (ORDER BY ename) AS employees FROM emp GROUP BY deptno;


文章名称:oracle怎么一行表示,oracle 或用什么表示
文章转载:http://shouzuofang.com/article/hshcdj.html

其他资讯