mssql里null与空的区别在哪里???

bluespy 2002-05-29 04:22:19
delphi6+mssql
在sql里如果一个数据段里为空的话,从sql的企业管理器里看是'null', 但我先在里面输入一个空格,再删去这个空格,也是空的, 但显示不是null了。
在sql语句里加入
sql.add('select * from 网断报修 where 解决时间='+''''+'''');
能查出数据段里为空的数据, 但查不出为null的数据。
怎么处理呢???
...全文
221 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
erickleung 2002-05-29
  • 打赏
  • 举报
回复
最主要的分别, 我相信是null是未输入数值的数据, 因为SQL server不可预知null将会是那类别的数据, SQL server便会分开处理null 数据,
null便不可直接和其他类型数据一起运算和比较.
doctor5 2002-05-29
  • 打赏
  • 举报
回复
null+'abc'=null,
''+'abc'='abc'
xiaonan 2002-05-29
  • 打赏
  • 举报
回复
null 是未赋值的字段
空是赋‘’值的字段
wyj1974 2002-05-29
  • 打赏
  • 举报
回复
使用is null来判断
qybao 2002-05-29
  • 打赏
  • 举报
回复
空值是'',就是什么字符都没有,空值可以和空值相等,也就是可以比较
null是指什么都没有,与空值类型不同,null不可以比较,即null<>null,要判断null值只能用is
taidy 2002-05-29
  • 打赏
  • 举报
回复
对了你的那个sql为
select * from 网断报修 where 解决时间 is null or 解决时间= ''
taidy 2002-05-29
  • 打赏
  • 举报
回复
‘’是一个长度为0的字符串,null为空,数据类型不同!
  • 打赏
  • 举报
回复
NULL 是指没有值
'' 是指空值

sql.add('select * from 网断报修 where (解决时间=NULL) or (解决时间= '''')

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧