2011-11-08 30 views
12

Làm thế nào tôi có thể hiển thị một giá trị khác nếu một số cột trả về FALSE,TSQL để trở NO hoặc YES thay TRUE hoặc FALSE

ví dụ,

COLUMN "BASIC" trả về FALSE, nhưng tôi cần hiển thị cho người dùng CÓ hoặc KHÔNG. Trường hợp FALSE, trả lại NO.

+0

Không có cột đúng/sai Boolean trong SQL Server. Hãy cho chúng tôi biết loại dữ liệu của cột BASIC là gì. – sqlvogel

Trả lời

37

Nếu varchar hoặc bit, xử lý NULLs

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

hoặc nếu chỉ cắn

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

Edit:

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"; 
+0

nhưng làm cách nào tôi có thể đặt nó vào truy vấn của mình? "CHỌN TipoImovel_Id AS TII_SEQ, Hàm Descricao AS TII_DSC, Sigla AS TII_DSC_SIGLA, cơ bản TỪ San_TipoImovel"; Cơ bản tôi cần trả lại CÓ hoặc KHÔNG CÓ TRUE hoặc FALSE –

6
case when column = 'FALSE' then 'NO' else 'YES' end 
+0

nhưng làm cách nào tôi có thể đặt điều này trong truy vấn của mình? "CHỌN TipoImovel_Id AS TII_SEQ, Hàm Descricao AS TII_DSC, Sigla AS TII_DSC_SIGLA, cơ bản TỪ San_TipoImovel"; Cơ bản tôi cần trả lại CÓ hoặc KHÔNG CÓ TRUE hoặc FALSE –

0

Sử dụng CASE tuyên bố:

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

Bạn cần bọc các chữ cái của mình trong dấu nháy đơn –

+0

@MarkKram, Cố định –

0

Như thế này:

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

Bạn có thể tạo một hàm người dùng định nghĩa như vậy trong tương lai, bạn chỉ có thể nói cái gì đó như:

select dbo.YesNo(Active) from APAccount 

đây là chức năng

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 
2

kể từ SQL 2012 bạn có thể sử dụng chức năng IIF

IIF(BASIC = 'TRUE', 'YES', 'NO') 
Các vấn đề liên quan