[英]Can I select multiple columns depending on a SELECT CASE?
根據下面的SELECT CASE,我想在一個WHEN中顯示兩個單獨的列。 這可能嗎?
以下兩條注釋掉的內容就像我想要的那樣。 我確信這是我想念的非常簡單的事情。 實際上,存在語法錯誤。
select
person.FirstName,
person.LastName,
CASE
--WHEN substatus is not null then 'HasSubstatus', null
--else null, 'DoesNotHaveSubstatus'
WHEN substatus is not null then 'HasSubstatus'
else null
end
from Person person
您不能在單個Case表達式中執行此操作,因為Case表達式返回單個值。 您必須使用兩個Case表達式。
Select person.FirstName
, person.LastName
, Case When substatus is not null Then 'HasSubstatus' End As [HasSubstatus]
, Case When substatus is null Then 'DoesNotHaveSubstatus' End As [DoesNotHaveSubstatus]
From Person person
你不能。
如果您想要將相同的條件邏輯應用於2列,或者將其作為單獨的查詢,如果您的意思是在一種情況下它應該返回兩列而在另一種情況下返回一列,則需要重復case語句。
你可以使用if()
和isnull()
( 這種語法僅適用於mySql )
select
person.FirstName,
person.LastName,
IF( ISNULL(substatus),'HasSubstatus', null ) AS DoesHave,
IF( ISNULL(substatus),null,'DoesNotHaveSubstatus' ) AS DoesNotHave,
from Person person
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.