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语句没有任何结果值。)