首页 新闻 会员 周边

sql server中where后面的条件是一个空格和多个空格搜出来的结果是相同的,请问这个为什么?

0
悬赏园豆:5 [已解决问题] 解决于 2016-10-07 14:16

如上图,sql server2012 sql语句where后面的条件没有空格,一个空格和多个空格搜出来的结果是一样的,请问这是什么原因?

yangyong0615的主页 yangyong0615 | 初学一级 | 园豆:154
提问于:2016-08-02 23:12
< >
分享
最佳答案
0

空字符和空格都不占用存储空间,SQL Server 默认其是相等的。结果都是1

select iif(''=' ',1,0),iif(''='  ',1,0)

 

收获园豆:5
悦光阴 | 老鸟四级 |园豆:2251 | 2016-08-20 18:19

这位才说道点上了

yangyong0615 | 园豆:154 (初学一级) | 2016-10-07 14:15
其他回答(7)
0

应该是会忽略where后面的空格

大黄人 | 园豆:641 (小虾三级) | 2016-08-03 09:48
0

有一个空格这是一个实实在在的值,你把空格当成一个字母理解,一个空格也是一个值。

zeri_w | 园豆:210 (菜鸟二级) | 2016-08-03 09:54
0

因为一个空格多个都是一个空值,你搜索的字段值是为空的,所以显示的结果相同

一组 | 园豆:207 (菜鸟二级) | 2016-08-03 10:01

那如果数据库里面确实存的是一个空格  搜出来的结果还会相同吗?   另外  Oracle 是否也是如此

 

支持(0) 反对(0) yangyong0615 | 园豆:154 (初学一级) | 2016-08-03 10:15

@yangyong_yy: 相同的    Oracle 也一样

支持(0) 反对(0) 一组 | 园豆:207 (菜鸟二级) | 2016-08-03 10:17

@一组: 是不是可以这样理解  在sqlserver 和 Oracle中存不了一个空格或多个空格只能存入“”?

支持(0) 反对(0) yangyong0615 | 园豆:154 (初学一级) | 2016-08-03 10:36

@yangyong_yy: 因为一个空格或多个空格与""都是一个空值null的值,你存进去显示的都是一样的结果..

支持(0) 反对(0) 一组 | 园豆:207 (菜鸟二级) | 2016-08-03 10:52

@一组: 也不是null值以下两条语句返回的结果还是不一样的

支持(0) 反对(0) yangyong0615 | 园豆:154 (初学一级) | 2016-08-03 14:23
0

空格也是一个值。

heyanan | 园豆:63 (初学一级) | 2016-08-03 10:12
0

都是空的,搜出来的 肯定也是一样的

分余力 | 园豆:67 (初学一级) | 2016-08-03 10:44
0

那就是空值而已

臭臭cc | 园豆:216 (菜鸟二级) | 2016-08-03 11:11
0

因为你的数据中有空值  所以查找出来的的结果都是这一个

 

雷。 | 园豆:775 (小虾三级) | 2016-08-03 11:21
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册