[英]how to use if exists in sql postgres sql
我可以在 Postgres 中使用 IF 嗎?
像這樣的東西
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...
)
;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.