簡體   English   中英

如何在sql postgres sql中使用if

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM