sql 语句优化,将2行查询结果合并到一行。

select emp_chg_other.s_name,project_table.project_name from kc_billhead,project_table,emp_chg_other,hr_epm_station,fg_ogm_station where kc_billhead.tr_proj=project_table. pc and project_table.pc=emp_chg_other.chg_data and emp_chg_other.emp_id=hr_epm_station.ccode and hr_epm_station.station=fg_ogm_station.cno and hr_epm_station.station='0106' and kc_billhead.billno='CGRK20180102001';

图片说明

16个回答

有一种死办法,concat(字段1,字段2)
具体写法 select concat((select 字段A from 表 where 条件=第一行),(select 字段A from 表 where 条件=第二行));这样即可

select
eco.s_name,pt.project_name
from kc_billhead kb
LEFT JOIN project_table pt ON kb.tr_proj= pt. pc
LEFT JOIN emp_chg_other eco ON pt.pc=eco.chg_data
LEFT JOIN hr_epm_station hes ON eco.emp_id = hes.ccode and hes.station='0106'
LEFT JOIN fg_ogm_station fos ON hes.station=fos.cno

where kb.billno='CGRK20180102001';

qq_22847605
qq_22847605 回复darklinboxs: 或者你采用存储过程用游标将数据进行拼凑也行
接近 2 年之前 回复
qq_22847605
qq_22847605 回复darklinboxs: 这个只是优化,合并的要用临时表
接近 2 年之前 回复
darklinboxs
darklinboxs 我的是ms sql
接近 2 年之前 回复
darklinboxs
darklinboxs 不行,老铁,试过了。
接近 2 年之前 回复

oracle数据库吗?

darklinboxs
darklinboxs 我是ms sql
接近 2 年之前 回复

可以看看这篇文章,sql的纵横查询,希望能够帮助你
http://blog.csdn.net/mango_love/article/details/51210020

这个是mysql数据库把

跪求大神教育,优化,msql

2行合并只能采用临时表了

可以使用 LISTAGG 语句 尝试一下

使用listagg( ) within group ( order by )

darklinboxs
darklinboxs 原语句操作一下吧,老铁。
接近 2 年之前 回复

前面说的对生成临时表

共16条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!