扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
推荐用WM_CONCAT函数
10年积累的成都做网站、网站制作、成都外贸网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站策划后付款的网站建设流程,更有行唐免费网站建设让你可以放心的选择与我们合作。
SELECT A.STD, WM_CONCAT(A.F3) NEW_RESUL
FROM (SELECT STD, F3
FROM (SELECT STD, F1 F3
FROM TABLE_A
UNION ALL
SELECT STD, F2 F3 FROM TABLE_A) A) A
GROUP BY A.STD
oracle下可以用函数decode处理:
select 产品名称,
sum(decode(季度,'第一季度',销售额,0)) 第一季度销售额,
sum(decode(季度,'第二季度',销售额,0)) 第二季度销售额,
sum(decode(季度,'第三季度',销售额,0)) 第三季度销售额,
sum(decode(季度,'第四季度',销售额,0)) 第四季度销售额,
from 表名
group by 产品名称;
行转列的准则就是通过主键进行分组,之后对行其它字段加上sum()、max()、count()函数,里边用decode()这类函数进行处理,总之分组不要用到他就成。
可以用wm_concat函数先把数据变成行显示,然后再通过截取来显示具体的月份,wm_concat转换如下
select compay_name cn, wm_concat(income) ic
from (select compay_name, sum(income) income, substr(time, 1, 6) time
from income
---where time =start_month and time = end_month
group by compay_name, substr(time, 1, 6)
order by compay_name, substr(time, 1, 6))
group by compay_name;
REGEXP_SUBSTR是ORACLE函数 结果已验证
SELECT '1',REGEXP_SUBSTR('a,b', '[^,]+', 1, LEVEL, 'i') AS STR
FROM DUAL
CONNECT BY LEVEL =
LENGTH('a,b') - LENGTH(REGEXP_REPLACE('a,b', ',', ''))+1;
可用union all来实现。
如test表中数据如下:
现要将id为3的一条按列显示,可用如下语句:
select to_char(id) str from test where id=3
union all
select name from test where id=3;
查询结果:
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流