gpt4 book ai didi

postgresql - 在postgres中合并两个选择查询结果

转载 作者:行者123 更新时间:2023-11-29 12:55:58 24 4
gpt4 key购买 nike

需要在不使用 union 或 union 的情况下在 postgres 中合并两个选择查询结果,所有 bcz 数据类型都不同。我可以在 php 中做到这一点,但仍在尝试获取查询结果本身。

我试过联合它说数据类型不同

查询 1:

(select     a.id,a.op_id,a.consult_id,b.id,b.finding_value,b.test_name_id,b.methd_id,b.sngl_tst_id,b.grp_tst_id,b.cmplx_tst_rslt_id,b.test_type 
from tra_rslt_entry_hd a
join tra_rslt_entry_dt b on b.result_id = a.id
where b.test_type = 'S' and a.consult_id = 5849 )

查询 2:

(select distinct a.op_id,a.consult_id,d.test_name_id,d.specimen,max(g.male)as male,max(g.female) as female,max(g.common) as common ,max(g.adult) as adult,max(g.child) as child,max(g.gender_specific)as gender_specific, d.test_name 
from tra_op_ip_consult_head a
join tra_op_ip_diagno_detail c on c.consult_id=a.consult_id
join mas_test_name d on d.test_name_id = c.test_name_id
join mas_tst_rgnt_nmval g on g.test_name_id = d.test_name_id
where a.consult_id =5849 and d.dept_id = 6 group by a.consult_id,a.op_id,d.test_name_id,d.test_name,d.specimen
order by d.test_name_id)

最佳答案

要使用 UNION 运算符,所有查询必须具有相同数量的列并且列必须是兼容的类型,因此您必须使用类型转换。

假设查询 1 (b.id) 中的第 4 列是数字,查询 2 (d.specimen) 中的第 4 列是文本。联合将失败,因为它们不是兼容的类型。您必须使用类型转换:

select a.id,a.op_id,a.consult_id,b.id::text, ...
union
select distinct a.op_id,a.consult_id,d.test_name_id,d.specimen,...

关于postgresql - 在postgres中合并两个选择查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43290481/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com