SELECT o. ID AS ID, ( CASE WHEN q.uniscid = o.uniscid THEN q.uniscid ELSE NULL END ) AS uniscid, ( CASE WHEN q.regno = o.regno THEN q.regno ELSE NULL END ) AS regno, ( CASE WHEN q.entname = o.entname THEN q.entname ELSE NULL END ) AS entname FROM data_syfr_tem o LEFT JOIN data_qyfr q ON ( o.entname = q.entname OR o.uniscid = q.uniscid OR o.regno = q.regno ) WHERE o.batchno = '20171213-2' AND STATE = '1';
我想把下面的两个id合并了 变成 6077 1211 null 测试单位名称,有大哥能教教吗。。。
DISTINCT on (o.id)我加了这个的话,数据就变成前两行的数据了,并合并成我想要的这个样子
SELECT o. ID AS ID, ( SELECT uniscid FROM data_qyfr WHERE uniscid = o.uniscid ) AS uniscid, ( SELECT regno FROM data_qyfr WHERE o.regno = q.regno ) AS regno, ( SELECT entname FROM data_qyfr WHERE o.entname=entname ) AS entname FROM data_syfr_tem o WHERE o.batchno = '20171213-2' AND STATE = '1';
你没发表结构 , 不清楚你这个到底什么样的结构, 死马当活马医吧............
谢答,这个问题其实是我想的麻烦了,其实我可以直接拿A表的参数直接在B表查。。
select * from b where b.name='a表相关字段' 还是谢谢老哥的回答了
可以使用左连接查询:select * from a left join b on a.id=b.id where 1,大概是这样,剩下的条件看你需要
谢答,这个问题其实是我想的麻烦了,其实我可以直接拿A表的参数直接在B表查。。
select * from b where b.name='a表相关字段' 还是谢谢老哥的回答了
你直接发你的表结构,和你想要达成的结果吧。
谢答,这个问题其实是我想的麻烦了,其实我可以直接拿A表的参数直接在B表查。。
select * from b where b.name='a表相关字段' 还是谢谢老哥的回答了