| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2810 人关注过本帖
标题:我就奇了怪了,空值与allt函数的问题,大神们看看撒?
只看楼主 加入收藏
ivf
Rank: 1
等 级:新手上路
帖 子:66
专家分:2
注 册:2009-3-14
结帖率:70%
收藏
已结贴  问题点数:20 回复次数:11 
我就奇了怪了,空值与allt函数的问题,大神们看看撒?
       我在做一个高校录取统计时候,有一个字符型字段,名字是“高校类别”,然后有 211 和 211、985  和空值等字段内容。

用BROWSE FOR  ALLTRIM(高校类别)="211"命令,结果是211或211、985记录的,无误;

但是用 SELECT * FROM 2018大学录取库 WHERE ALLTRIM(高校类别)="211",则“高校类别”字段中空值记录也选上了,怎么回事?

      但是去掉allt函数,直接用SELECT * FROM 2018大学录取库 WHERE 高校类别="211",结果也无误。

allt函数是去字符串首尾空格函数,是不是allt对空值去空格后,有什么变化?


                 请教大家看看,谢谢!~~~~~~~~~~

搜索更多相关主题的帖子: 空值 函数 字段 类别 FROM 
2018-08-16 19:32
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:7 
SELECT * FROM 2018大学录取库 WHERE ALLTRIM(高校类别)=="211"
2018-08-16 19:58
ivf
Rank: 1
等 级:新手上路
帖 子:66
专家分:2
注 册:2009-3-14
收藏
得分:0 
回复 2楼 吹水佬
对,这样做对了。
  但是我就是想问为什么,那样不对呢?谢谢
2018-08-16 20:12
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
以下是引用ivf在2018-8-16 20:12:00的发言:

对,这样做对了。
  但是我就是想问为什么,那样不对呢?谢谢

==两边是完全相同为.T.,=号就未必。
2018-08-16 20:32
ivf
Rank: 1
等 级:新手上路
帖 子:66
专家分:2
注 册:2009-3-14
收藏
得分:0 
回复 4楼 吹水佬
谢谢!辛苦了
2018-08-16 20:34
ivf
Rank: 1
等 级:新手上路
帖 子:66
专家分:2
注 册:2009-3-14
收藏
得分:0 
回复 4楼 吹水佬
可是版主,为什么sele语句中,allt()对字段空值进行作用后,发生了什么变化?
2018-08-16 21:14
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:火星
等 级:版主
威 望:37
帖 子:707
专家分:2833
注 册:2018-3-13
收藏
得分:7 
首先,概念错误,"" 是空串,不是空值,空值指 NULL
其次,不需要 alltrim,加上此函数,即使“高校类别”字段有索引也将不可优化

Select-SQL 语句的 where 过滤条件比较字符串时,遵循 set ansi on/off 的设置
你的情形,应该先
SET ANSI ON

SELECT * FROM 2018大学录取库 WHERE 高校类别="211"

这家伙很懒,啥也没留下
2018-08-17 03:01
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
以下是引用ivf在2018-8-16 21:14:49的发言:

可是版主,为什么sele语句中,allt()对字段空值进行作用后,发生了什么变化?

不用猜想,试一下就清楚,观测一下ALLTRIM()返回的是什么
2018-08-17 04:46
ivf
Rank: 1
等 级:新手上路
帖 子:66
专家分:2
注 册:2009-3-14
收藏
得分:0 
回复 7楼 csyx
先感谢,我再学习,再次感谢!
2018-08-17 08:48
ivf
Rank: 1
等 级:新手上路
帖 子:66
专家分:2
注 册:2009-3-14
收藏
得分:0 
回复 8楼 吹水佬
版主,恕鄙人愚钝,我直接跳到空记录字段,用?allt()函数返回显示,结果什么也没有.请指点,感激不尽~

[此贴子已经被作者于2018-8-17 08:54编辑过]

2018-08-17 08:50
快速回复:我就奇了怪了,空值与allt函数的问题,大神们看看撒?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023639 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved