=NULL,IS NULL ,IS NOT NULL问题

simen_frankly 2008-11-28 01:50:31
在MSSQL中,rtrim(col1)='',rtrim(col1)=NULL,rtrim(col1) is null有什么区别?在oracle中呢?
谢谢
...全文
89 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
simen_frankly 2008-11-28
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 simen_frankly 的回复:]

rtrim(null值)='' true?false
[/Quote]


false
生活真美好 2008-11-28
  • 打赏
  • 举报
回复
呵呵,小问题大学问。
claro 2008-11-28
  • 打赏
  • 举报
回复
学习
simen_frankly 2008-11-28
  • 打赏
  • 举报
回复

rtrim(null值)='' true?false
simen_frankly 2008-11-28
  • 打赏
  • 举报
回复
rtrim(null值)=true?false
simen_frankly 2008-11-28
  • 打赏
  • 举报
回复
如果一个字段是由空格组成的,rtrim()之后就应该得到空字符串而不是null?
等不到来世 2008-11-28
  • 打赏
  • 举报
回复
select * from tb where c<>''
/*
id c
----------- -----------
*/
select * from tb where c is not null
/*
id c
----------- -----------
1
*/
brio8425 2008-11-28
  • 打赏
  • 举报
回复
=NULL 一般都用于给变量赋null 值用。。


IS NULL
IS NOT NULL判断用的。。。
等不到来世 2008-11-28
  • 打赏
  • 举报
回复
create table tb(id int,c varchar(10))
insert tb select 1,'' union all select 8,null

select * from tb where c=''
/*
id c
----------- -----------
1
*/
select * from tb where c is null
/*
id c
----------- -----------
8 NULL
*/
set ansi_nulls on
select * from tb where c=null
/*
id c
----------- -----------
*/
set ansi_nulls off
select * from tb where c=null
/*
id c
----------- -----------
8 NULL
*/
drop table tb
ljhcy99 2008-11-28
  • 打赏
  • 举报
回复
rtrim(col1)='' :字段值为空字符串
rtrim(col1)=NULL : 字段未赋值, 未知值NULL
rtrim(col1) is null : 能返回一个判断值,True或 False值
昵称被占用了 2008-11-28
  • 打赏
  • 举报
回复
rtrim(col1)='' rtrim(col1)空字符串为TRUE,null时为false
rtrim(col1)=NULL 永远false
rtrim(col1) is null rtrim(col1)为null时为TRUE,空字符串时为false
simen_frankly 2008-11-28
  • 打赏
  • 举报
回复
还有就是rtrim(warehouse)<>''和 rtrim(warehouse) is not null有什么区别?
晕了~~?~~~~~~~~~~~~~~~~~
等不到来世 2008-11-28
  • 打赏
  • 举报
回复
通过设置set ansi_null开关,=NULL有不同的结果。
一般不使用=null来判断,建议用is (not) null来判断。

''表示一个空串,是一个字符型的值。null表示没有值。

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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