web-dev-qa-db-fra.com

TSQL doit renvoyer NON ou OUI à la place VRAI ou FAUX

Comment puis-je afficher une valeur différente si certaines colonnes renvoient FALSE, 

par exemple,

COLUMN "BASIC" retourne FALSE, mais j'ai besoin de montrer à l'utilisateur OUI ou NON. Affaire FALSE, retournez NO.

16
Lucas_Santos

Si varchar ou bit, gestion des valeurs NULL

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

ou si juste un peu

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

Modifier:

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";
43
gbn
case when column = 'FALSE' then 'NO' else 'YES' end
6
Derek Kromm

depuis SQL 2012, vous pouvez utiliser la fonction IIF

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

Comme ça:

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

Vous pouvez créer une fonction définie par l'utilisateur afin de pouvoir à l'avenir dire quelque chose comme:

select dbo.YesNo(Active) from APAccount

voici la fonction

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

Utilisez la déclaration CASE:

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