簡體   English   中英

我可以根據SELECT CASE選擇多個列嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM