Jac*_*zko 1 t-sql sql-server zero hyphen
在SQL Management Studio中运行以下查询时,结果将为1.
SELECT
CASE WHEN '-' = 0 THEN
1
ELSE
0
END
Run Code Online (Sandbox Code Playgroud)
这让我有点害怕,因为我必须多次检查0值,而且它似乎很容易等于值' - '.
你正在以错误的方式看待它.
' - '是一个字符串,因此在将它与整数进行比较时会隐式转换为整数值:
select cast('-' as int) -- outputs 0
Run Code Online (Sandbox Code Playgroud)
为了确保您实际上将值与字符串'0'进行比较,请将此类比较改为:
select case when '-' = '0' then 1 else 0 end
Run Code Online (Sandbox Code Playgroud)
通常,当您比较不同数据类型的值时,您会遇到麻烦,因为隐式转换发生在场景后面 - 所以不惜一切代价避免它.
归档时间: |
|
查看次数: |
753 次 |
最近记录: |