在 Postgres 中給出下表:
| ID | some_col |
|---|---|
| 1 | 一個 |
| 1 | b |
| 2 | 一個 |
| 3 | 一個 |
我想將輸出作為 id 和 true(如果表中至少存在具有該 id 的行)或 false(如果在表中找不到具有該 id 的行)。
例如 (1, 2, 3, 4, 5) 中的 id:
| ID | 價值 |
|---|---|
| 1 | 真的 |
| 2 | 真的 |
| 3 | 真的 |
| 4 | 錯誤的 |
| 5 | 錯誤的 |
我嘗試使用 group by 和 case with conditions,但是有沒有優化/性能 SQL 方法來實作這一點?Bcz,groupby是否完整的行數在這種情況下是不必要的。而且,通過exists查詢,我沒有找到處理多行回傳的方法;
提前致謝!
uj5u.com熱心網友回復:
該in子句不會這樣做。您需要以某種方式構建一個值串列(values表值建構式在大多數 rdbms 中作業)并與之外部連接:
SELECT x.id, EXISTS (
SELECT *
FROM t
WHERE t.id = x.id
) AS value
FROM (VALUES (1), (2), (3), (4), (5)) AS x(id)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/418803.html
標籤:
