今天在写SQL代码的时候写了个 ISNULL(变量1,变量2),返回的结果居然是 "*" ,这个星号,郁闷了很久。

代码大意如下:

declare @str1 varchar(1)
declare @str2 int
set @str2=222
select ISNULL(@str1,@str2)

返回结果:" * ",这个郁闷啊。

修改下代码:

declare @str1 varchar(4)
declare @str2 int
set @str2=222
select ISNULL(@str1,@str2)

返回结果: " 222 " 。

再次修改代码:

declare @str1 varchar(4)
declare @str2 varchar(8)
set @str2=''
select ISNULL(@str1,@str2)

返回结果:"  2222 "。

经过这三次的试验结果:猜测isnull返回的结果类型,与第一个变量是息息相关的,甚至就取决于第一个变量的类型。

官方解释:

Syntax

 
ISNULL ( check_expression , replacement_value )

Arguments

check_expression

Is the expression to be checked for NULL. check_expression can be of any type.

replacement_value

Is the expression to be returned if check_expression is NULL. replacement_value must be of a type that is implicitly convertible to the type of check_expresssion.

Return Types

Returns the same type as check_expression.

Remarks

The value of check_expression is returned if it is not NULL; otherwise, replacement_value is returned after it is implicitly converted to the type of check_expression, if the types are different.

返回值是第二个参数,会转成第一个参数的类型,转换失败,就会报异常或者出现前面的"*",星号。

最新文章

  1. printf和scanf
  2. 利用php的register_shutdown_function来记录php的输出日志
  3. 【Android】Android内存机制,了解Android堆和栈
  4. [King.yue]Ext.NET相比WebForm的优势
  5. 【转】Java中Vector和ArrayList的区别
  6. js深入研究之牛逼的类封装设计
  7. 枚举+搜索 hdu-4431-Mahjong
  8. DirectX (13) 粒子系统
  9. 如何使用kaptcha验证码组件
  10. NodeJs的简单介绍
  11. NOI2017&&codeM2017游记
  12. 解决Cell重用内容混乱的几种简单方法,有些方法会增加内存
  13. stm32的NVIC是什么?
  14. VirtualAPK的简单使用
  15. 数据攻略●R语言自述
  16. 内网主机使用yum安装软件
  17. HDU 2586 How far away ?
  18. Apollo源码阅读笔记(二)
  19. C++11新特性,bind,基于对象
  20. myeclipse或eclipse无法从wtpServer添加tomcatServer

热门文章

  1. (转)C# WebApi 异常处理解决方案
  2. JS弹框
  3. tp3.2 支付宝手机网站支付
  4. Solr使用in语法查询
  5. ubuntu播放音频没声音
  6. python- do_excel
  7. 网易云音乐mp3外链、真实地址下载方法
  8. 重识linux-守护进程,系统服务,daemons
  9. 24.API爬天气预报数据
  10. 57.2拓展之纯 CSS 创作黑暗中会动的眼睛和嘴巴