web-dev-qa-db-ja.com

TSQLがTRUEまたはFALSEの代わりにNOまたはYESを返す

一部の列がFALSEを返す場合、別の値を表示するにはどうすればよいですか。

例えば、

COLUMN "BASIC"はFALSEを返しますが、ユーザーにYESまたはNOで表示する必要があります。 FALSEの場合、NOを返します。

18
Lucas_Santos

Varcharまたはbitの場合、NULLの処理

case
    when BASIC = 'FALSE' then 'NO'
    when BASIC <> 'FALSE' then 'YES'
    else 'UNDEFINED'
end

または少しだけ

case
    when BASIC = 1 then 'YES'
    when BASIC = 0 then 'NO'
    else 'UNDEFINED'
end

編集:

SELECT 
    TipoImovel_Id AS TII_SEQ,
    Descricao AS TII_DSC, 
    Sigla AS TII_DSC_SIGLA,
    -- choose which one you want from the answers here
    case
        when BASIC = 1 then 'YES'
        when BASIC = 0 then 'NO'
        else 'UNDEFINED'
    end AS SomeColumnName
FROM San_TipoImovel";
44
gbn
case when column = 'FALSE' then 'NO' else 'YES' end
6
Derek Kromm

sQL 2012以降、IIF関数を使用できます

IIF(BASIC = 'TRUE', 'YES', 'NO')
4
FLICKER

このような:

SELECT TipoImovel_Id AS TII_SEQ, Descricao AS TII_DSC, Sigla AS TII_DSC_SIGLA, case when basic = 'FALSE' then 'NO' else 'YES' end 
FROM San_TipoImovel
0
Mark Kram

ユーザー定義関数を作成して、将来は次のように言うことができます。

select dbo.YesNo(Active) from APAccount

ここに機能があります

CREATE FUNCTION [dbo].YesNo(@Value Bit)
    RETURNS varchar(3)
    BEGIN
      DECLARE @R as varchar(3)

      SET @R =
        (
        Select 
            case 
                when @Value = 1 then 'Yes'
                else 'No'
            end
        )
       RETURN @R
    END
0
edilio

CASEステートメントを使用します。

case BASIC when 'True' then 'Yes' ELSE 'No' end
0