如果在sql postgresql中存在,如何使用
Posted
技术标签:
【中文标题】如果在sql postgresql中存在,如何使用【英文标题】:how to use if exists in sql postgres sql 【发布时间】:2018-07-13 16:05:37 【问题描述】:我可以在 Postgres 中使用 IF 存在吗?
类似的东西
if exits(select* from a)
then (select * from b)
else
(select * from c)
我遇到了错误。正确的使用方法是什么?
【问题讨论】:
SQL 中没有IF
。
【参考方案1】:
您可以使用它,但不能以这种风格使用(看起来像 MS 风格)。 IF
提供程序语言 plpgsql。仅在 SQL 语言中是不可能的。
【讨论】:
【参考方案2】:在纯 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...
)
;
【讨论】:
【参考方案3】:您可以简单地在表之间使用 LEFT JOIN。
SELECT * FROM A
LEFT JOIN B ON ....
LEFT JOIN C ON ....
这样,如果它存在于 B 中,那么您将在同一行得到答案。 如果 B 中不存在,而在 C 中,你也会从 C 中获取同一行的数据。
【讨论】:
以上是关于如果在sql postgresql中存在,如何使用的主要内容,如果未能解决你的问题,请参考以下文章