如果沒有結果,我有一個 Select-Statement A,我希望使用 Select B 的結果。
通常我會使用“OR”,但由于陳述句具有完全不同的表,這似乎是不可能的。我怎么做?
uj5u.com熱心網友回復:
做一個UNION ALL。如果第一個SELECT回傳非空結果,您就完成了。否則回傳第二個SELECT的結果:
SELECT a FROM table_with_name WHERE a = 1
UNION ALL
SELECT b FROM other_table_with_name
WHERE b = 'xyz'
AND NOT EXISTS (SELECT a FROM table_with_name WHERE a = 1)
uj5u.com熱心網友回復:
使用 CASE 可以做到這一點。使用這樣的案例:
SELECT
CASE WHEN EXISTS (SELECT a FROM table_with_name WHERE a = 1)
THEN (SELECT a FROM table_with_name WHERE a = 1)
ELSE (SELECT b FROM other_table_with_name WHERE b = 'xyz')
END AS your_result
如果找到第一個陳述句的結果,它將被使用。如果不是,將執行 ELSE 部分中的查詢。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/395655.html
