当前位置: 代码迷 >> Sql Server >> 奇怪的SQL查询结果,大家说说什么原因,该如何处理
  详细解决方案

奇怪的SQL查询结果,大家说说什么原因,该如何处理

热度:30   发布时间:2016-04-27 15:02:27.0
奇怪的SQL查询结果,大家说说什么原因
declare @a int;
select @a=0

if @a=''
select '空'
else
select '不空'

if @a=0
select '零'
else
select '不零'

select @a=''

if @a=''
select '空'
else
select '不空'

if @a=0
select '零'
else
select '不零'

--返回的结果居然是空零空零,难道''跟零是相等的?
[email protected],float类型也一样




------解决方案--------------------
变量没有赋值吧。没什么不怪的。得出的结果不是null就是0
试下赋值。
------解决方案--------------------
默认值吧!@a 是int的。
''与0是不是两个被和谐成0了?
------解决方案--------------------
可能是在隐式数据类型转换时,将0所对应的二进制值00转换成了空串,这在强数据类型中是不允许的.
类似的:
SQL code
select case when 0='  ' then 1 else 0 end/*-----------1(1 行受影响)*/
  相关解决方案