初学者。Sqlserver null的问题
从网上查到的资料说,任何数据类型与NULL值进行计算,结果都将为NULL.
select null-1
结果是null
可是下面这个查询为什么会出错呢?
select isnull(null-1,'test');
居然报错说将varchar转为int失败。
为什么会说转成int失败呢?前面的null-1的结果不是null么?怎么还会去转成int?
环境sql server2000
谢谢回答。
/
呵呵。确实没注意过。应该是null-1结果隐式转换成了int类型。所以才会出现这个错误。
http://blog.csdn.net/Beirut/archive/2009/08/11/4433706.aspx
除了count(*) 外其他聚合函数都会忽略空值
SQL code:
语法
ISNULL ( check_expression , replacement_value )
参数
check_expression
将被检查是否为 NULL 的表达式。check_expression 可以为任何类型。
replacement_value
当 check_expression 为 NULL 时要返回的表达式。replacement_value 必须是可以隐式转换为 check_expresssion 类型的类型。
返回类型
返回与 check_expression 相同的类型。
备注
如果 check_expression 不为 NULL,则返回它的值;否则,在将 replacement_value 隐式转换为 check_expression 的类型(如果这两个类型不同)后,则返回前者。
test必须可以转换为整型才可以,如果换为'1'就可以了
可是我这里好像没有用到聚合函数啊。
{{-
相关问答:
我的数据库是简体sqlserver2000 ,我想在繁体access下连接,通过odbc是可以了,但在access下出现打开的表全中"#已删除"
不知道要怎么操作才可以用ACCESS繁体连接简体sqlserver2000.谢谢!!!
大家都 ......
在SqlServer中如何查看历史上执行的存储过程的信息呢,如:传入参数,执行时间等等。如果不能查看历史记录,是否可以自己写触发器之类的,人工控制呢,在Oracle里面有动态视图可以随时查看历史执行的sql语句,SqlSer ......
我看了很多文章,写的太专业,能不能用大白话讲讲,就是怎么构建索引的,查的时候是怎么样的步骤,为什么比like快,是不是只要用contect,就一定会去查,比如
select * from table where contect('sdfsd',sdf) and ......
在数据库中有张表,有id,name两列,id 是主键,没有设置自增属性,在程序中取出这张表放入datatable,在这个datatable中插入一条记录,当更新数据库时提示id列不能为空,请问该怎么解决?
给它一个值!!主键不能为空 ......
前置like如何使用
比如,‘1,2’ like ‘1,2,3’怎么匹配
是不是‘%1,2%’like‘1,2,3’
charindex(',' + '1,2' + ', ......