我有一堆關於地址的業務數據庫的查詢,我經常希望將這些查詢重新分類爲在給定(已知)區域內部或外部。Postgres控制流 - 多個返回值
SELECT CASE
構造非常適合這個目的,但我經常處於這樣一種情況,即我希望基於相同條件測試多個返回值。例如,如果業務處於某個區域,我將它歸類爲「內部」,但我也可以出於同樣的原因,最好在相同的CASE塊中設置另一個值或標誌,對觀察進行不同的權衡,等等。條件是CASE標準是真實的。
什麼是利用長條件語句並同時獲得多個返回值的最佳/最簡單的方法?那只是plpgsql
的域名?
編輯:添加模擬數據,下面。這是做分類,但如果我想衡量每個機構的就業,我需要一個單獨的CASE
區塊,具有相同的標準。這就是我想要解決的問題。
SELECT
City, CASE WHEN City =ANY (ARRAY['San Francisco', 'San Mateo','Oakland','Marin','Santa Clara'])
THEN City ELSE 'outside'::text END as area,EstabEmployees
FROM (VALUES
('San Francisco', 14),
('San Mateo', 23),
('San Mateo', 3),
('San Francisco', 34),
('Visalia', 65),
('Juneau', 23),
('Mendocino', 5),
('Santa Clara', 1),
('Los Angeles', 56),
('San Mateo', 11),
('Los Angeles', 30),
('Marin', 33),
('Oakland', 14),
('Oakland', 2)
) AS t (City, EstabEmployees)
;
請張貼一些示例數據和期望的輸出 – Quassnoi