我有一堆关于地址的业务数据库查询,我经常想将它们重新分类为给定(已知)区域内部或外部。
该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)
;