SQL中的用例语句

SQL中的用例语句,sql,sql-server,case,Sql,Sql Server,Case,我想使用case语句更改结果中的值,但它似乎忽略了这一点。非常简单,如果表中的值为1,则必须更改为True,如果值为0,则必须更改为false。以下是我所做的: CASE pbc.bShownUp WHEN 0 THEN 'False' ELSE pbc.bShownUp END AND CASE ch.bShownUp WHEN 1 THEN 'True' ELSE ch.bShownUp END 无论我做什么,结果仍然是0或1 请提供帮助。如果b

我想使用
case
语句更改结果中的值,但它似乎忽略了这一点。非常简单,如果表中的值为
1
,则必须更改为
True
,如果值为
0
,则必须更改为
false
。以下是我所做的:

CASE pbc.bShownUp
    WHEN 0 THEN 'False'
    ELSE pbc.bShownUp 
END  
AND
CASE ch.bShownUp
    WHEN 1 THEN 'True'
    ELSE ch.bShownUp 
END  
无论我做什么,结果仍然是0或1


请提供帮助。

如果
bShownUp
是数字列,则生成的结果是混合的-有时是0/1,有时是“False”/“True”,例如字符串。我假设
bShownUp
是VARCHAR类型,当0时,您必须将
更改为
当“0”
时,如果您的bShownUp是
VARCHAR
,那么您的查询应该如下所示

CASE pbc.bShownUp
     WHEN '0' THEN 'False'
     ELSE pbc.bShownUp
END

AND

CASE ch.bShownUp
     WHEN '1' THEN 'True'
     ELSE ch.bShownUp
END

试试下面的方法

CASE pbc.bShownUp
         WHEN 0 THEN 'False'
         ELSE CAST(pbc.bShownUp  AS VARCHAR(10))
    END

    AND

    CASE ch.bShownUp
         WHEN 1 THEN 'True'
         ELSE CAST(ch.bShownUp  AS VARCHAR(10))
    END
我认为这样做可以:

case ch.bShownUp
    when 1 then 'True'
    else 'False'
end

使用
CASE
表达式时,所有
的数据返回类型必须相同。简单地说,
CASE
必须解析为单一类型

更多参考和

从类型的角度来看,此时代码表示

CASE BIT
   WHEN 1 then NVARCHAR
   ELSE BIT
那是行不通的

所以你必须这样做

CASE ch.bShownUp
   WHEN 1 then 'TRUE'
   ELSE 'FALSE'

您使用的是哪种数据库管理系统?你所说的
结果仍然是0或1是什么意思?你是说它显示的是0和1而不是真和假?请给出更多的上下文:什么数据库?这个箱子在哪里?在SELECT子句中,什么是您的DBMS?是MS SQL Server还是其他什么?pbc.bShownUp的数据类型是什么?在select语句中使用MS SQL请显示一个更完整的查询,我不明白
在那里做什么。bShownUp的数据类型是bit.Case表达式。(Case语句没有任何结果值。)