我認爲一旦CASE找到匹配項,就會中斷並返回第一個匹配項。但是,我得到所有匹配的案件陳述。例如Oracle多個CASE語句評估爲true
select distinct PERSON,
LOCATION,
(case
when LOCATION = 'CA' and PHONE is not null
then PHONE
when LOCATION = 'NY' and PHONE is not null
then PHONE
when LOCATION = 'FL' and PHONE is not null
then PHONE
when LOCATION = 'MA' and PHONE is not null
then PHONE
else '---'
end)
from DIRECTORY
where LOCATION in
('CA', 'NY', 'FL', 'MA');
因爲人可以在每個國家的電話號碼,我要的是發現,基本上是「排名」由各州的順序第一電話號碼。我得到的是所有找到的電話號碼。
THX ...
謝謝 - 這是我失蹤的第二個cte。試圖從第一個cte中拉出像max(LOCATION_RANK)這樣的東西,但仍然返回了所有行。這太好了 - 非常感謝... – user1628169