如果 sql postgres sql 中存在,如何使用
how to use if exists in sql postgres sql
我可以使用 IF exists in Postgres 吗?
像这样
if exits(select* from a)
then (select * from b)
else
(select * from c)
我遇到错误。正确的使用方法是什么?
可以用,但不是这个风格(貌似MS风格)。 IF
可用于过程语言 plpgsql。只是在 SQL 语言中是不可能的。
您可以简单地在表之间使用 LEFT JOIN。
SELECT * FROM A
LEFT JOIN B ON ....
LEFT JOIN C ON ....
这样,如果它存在于 B 中,那么您将在同一行中获得答案。
如果它在 B 中不存在,但在 C 中存在,您也会在同一行中从 C 中获取数据。
纯 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...
)
;
我可以使用 IF exists in Postgres 吗?
像这样
if exits(select* from a)
then (select * from b)
else
(select * from c)
我遇到错误。正确的使用方法是什么?
可以用,但不是这个风格(貌似MS风格)。 IF
可用于过程语言 plpgsql。只是在 SQL 语言中是不可能的。
您可以简单地在表之间使用 LEFT JOIN。
SELECT * FROM A
LEFT JOIN B ON ....
LEFT JOIN C ON ....
这样,如果它存在于 B 中,那么您将在同一行中获得答案。 如果它在 B 中不存在,但在 C 中存在,您也会在同一行中从 C 中获取数据。
纯 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...
)
;