sql postgres sql中如何使用

时间:2018-07-13 16:05:38

标签: sql postgresql exists

我可以使用Postgres中存在的IF吗?

类似这样的东西

if exits(select* from a)
then (select * from b)
else 
(select * from c)

我遇到错误。正确的使用方式是什么?

3 个答案:

答案 0 :(得分:1)

您可以使用它,但不能以这种样式使用(看起来像MS样式)。 IF可用程序语言plpgsql。仅使用SQL语言是不可能的。

答案 1 :(得分:0)

您可以在表之间简单地使用LEFT JOIN。

SELECT * FROM A 
LEFT JOIN B ON ....
LEFT JOIN C ON ....

这样,如果它存在于B中,那么您将在同一行上得到答案。 而且如果它不在B中而是存在于C中,那么您也将从同一行中的C中获取数据。

答案 2 :(得分:0)

在纯SQL中没有 IF,但是您可以将查询的两个部分与UNION ALL结合使用:


select ...
from b
where EXISTS ( select *
        from a
        where...
        )
UNION ALL
select ...
from c
where NOT EXISTS ( select *
        from a
        where...
        )
     ;