大家帮忙解释下这个SQL中语句的执行结果啊

sdlwhgw 2013-03-11 10:03:19
环境 SQLServer2008

①select REPLACE('12',' ',null)
这个返回 NULL
②select ISNULL(NULLIF(Rtrim(ltrim(' ')),''),999999)
这个返回 *

为什么?
...全文
215 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sdlwhgw 2013-03-11
  • 打赏
  • 举报
回复
上面的回复是错的。 测试了一下 select ISNULL(NULLIF(Rtrim(ltrim(' ')),''),999999)-- 4个空格 --* select ISNULL(NULLIF(Rtrim(ltrim(' ')),''),'999999'))-- 4个空格 --9999 SELECT cast(999999 as CHAR(4)) --* SELECT cast('999999' as CHAR(4)) --9999 SQL2008 和2000 的结果是一样的。 应该是类型自动转换的时候出的问题。
sdlwhgw 2013-03-11
  • 打赏
  • 举报
回复
引用 3 楼 hjywyj 的回复:
引用 2 楼 Haiwer 的回复: 1、REPLACE函数规定: 如果任何一个参数为 NULL,则返回 NULL。 2、Rtrim(ltrim(' '))返回char(4)的'',NULLIF(Rtrim(ltrim(' ')),'')是char(4)的null ISNULL(NULLIF(Rtrim(ltrim(' ')),''),999999)隐式转换为 ……
刚才试了一下,2000 下面显示是 9999, 2008 下面显示 * 谢谢大家的回复
昵称被占用了 2013-03-11
  • 打赏
  • 举报
回复
select cast(999999 as CHAR(4)) 结果* select ISNULL(NULLIF(Rtrim(ltrim(' ')),''),999999) 结果999999
昵称被占用了 2013-03-11
  • 打赏
  • 举报
回复
引用 3 楼 hjywyj 的回复:
引用 2 楼 Haiwer 的回复: 1、REPLACE函数规定: 如果任何一个参数为 NULL,则返回 NULL。 2、Rtrim(ltrim(' '))返回char(4)的'',NULLIF(Rtrim(ltrim(' ')),'')是char(4)的null ISNULL(NULLIF(Rtrim(ltrim(' ')),''),999999)隐式转换为 ……
可能我解释错了 Rtrim(ltrim(' '))返回char(4)的'',NULLIF(Rtrim(ltrim(' ')),'')是char(4)的null ISNULL(NULLIF(Rtrim(ltrim(' ')),''),999999)需要将999999隐式转换为char(4),即 cast(999999 as char(4)),由于999999超出char(4)的长度,结果显示*,表示数据转换由于长度不足出现的问题
  • 打赏
  • 举报
回复
引用 2 楼 Haiwer 的回复:
1、REPLACE函数规定: 如果任何一个参数为 NULL,则返回 NULL。 2、Rtrim(ltrim(' '))返回char(4)的'',NULLIF(Rtrim(ltrim(' ')),'')是char(4)的null ISNULL(NULLIF(Rtrim(ltrim(' ')),''),999999)隐式转换为 ISN……
海爷 select ISNULL(NULLIF(Rtrim(ltrim(' ')),''),'999999')返回的是‘9999’
昵称被占用了 2013-03-11
  • 打赏
  • 举报
回复
1、REPLACE函数规定: 如果任何一个参数为 NULL,则返回 NULL。 2、Rtrim(ltrim(' '))返回char(4)的'',NULLIF(Rtrim(ltrim(' ')),'')是char(4)的null ISNULL(NULLIF(Rtrim(ltrim(' ')),''),999999)隐式转换为 ISNULL(NULLIF(Rtrim(ltrim(' ')),''),'999999'),由于'999999'超出char(4)的长度,结果显示*,表示数据转换由于长度不足出现的问题
szm341 2013-03-11
  • 打赏
  • 举报
回复
replace返回值nvarchar 或 ntext 如果任意参数为 NULL,则返回 NULL。--联机丛书 第二个不详~

22,210

社区成员

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

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