TSQL возвращает NO или YES вместо TRUE или FALSE - PullRequest
17 голосов
/ 08 ноября 2011

Как показать другое значение, если некоторые столбцы возвращают FALSE,

, например,

COLUMN "BASIC" возвращает FALSE, но мне нужно показать для пользователя YES или NO.Случай ЛОЖЬ, возврат №.

Ответы [ 6 ]

43 голосов
/ 08 ноября 2011

Если varchar или бит, обработка 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";
6 голосов
/ 08 ноября 2011
case when column = 'FALSE' then 'NO' else 'YES' end
4 голосов
/ 10 сентября 2015

начиная с SQL 2012 вы можете использовать функцию IIF

IIF(BASIC = 'TRUE', 'YES', 'NO')
0 голосов
/ 15 марта 2015

Вы можете создать пользовательскую функцию, чтобы в будущем вы могли просто сказать что-то вроде:

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 голосов
/ 08 ноября 2011

Как это:

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 голосов
/ 08 ноября 2011

Использование CASE выражение:

case BASIC when 'True' then 'Yes' ELSE 'No' end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...