gpt4 book ai didi

postgresql: 关于 SELECT 的一个问题

转载 作者:行者123 更新时间:2023-11-29 13:37:16 25 4
gpt4 key购买 nike

我有一个类似的查询

SELECT t3 FROM tbl_join WHERE t2=3 AND t1 in (1,2,3);

输出是:

 t3 
----
1
1
(2 rows)

它只给出两行,因为 t3 的条目不存在。是否可以像这样修改 SELECT 查询:

SELECT t3||0 FROM tbl_join WHERE t2=3 AND t1 in (1,2,3);

得到这样的结果

 t3 
----
1
1
0
(3 rows)

我的意思是,是否有可能编写一个查询,其中一个人可以在没有的情况下获得输出。行数等于没有。 in 子句 中的参数。如果条目不存在,则输出应作为相应输入的某个常量值

最佳答案

你想要一个外部连接:类似

SELECT t.t3 
FROM (VALUES (1), (2), (3)) AS litvals
LEFT OUTER JOIN tbl_join as t
ON litvals.column1 = t.t1
WHERE t.t2=3

编辑:嗯。当tbl_join中没有对应的行与VALUES匹配时,则t2为NULL,当然不等于3。您可以使用子选择来处理这个问题:

SELECT t.t3 
FROM (VALUES (1), (2), (3)) AS litvals
LEFT OUTER JOIN (SELECT * FROM tbl_join WHERE t2 = 3) AS t
ON litvals.column1 = tbl_join.t1

关于postgresql: 关于 SELECT 的一个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6796081/

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