初学者。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'就可以了
可是我这里好像没有用到聚合函数啊。
{{-
相关问答:
在SqlServer中如何查看历史上执行的存储过程的信息呢,如:传入参数,执行时间等等。如果不能查看历史记录,是否可以自己写触发器之类的,人工控制呢,在Oracle里面有动态视图可以随时查看历史执行的sql语句,SqlSer ......
请用过的朋友告知下,谢谢!
美的你,那玩意只能装装ULTRAEDIT
你试过?确实不行?
哥们 你用586跑跑 WIN vista 试试
没那么严重,无非是速度慢点而已,对于vs2008来说,内存还是个更重要的因素。
......
我看了很多文章,写的太专业,能不能用大白话讲讲,就是怎么构建索引的,查的时候是怎么样的步骤,为什么比like快,是不是只要用contect,就一定会去查,比如
select * from table where contect('sdfsd',sdf) and ......
现在我的本机是用的sqlserver2000版本的(可以正常的连接)。数据连接如下:proxool.xml
XML code:
<?xml version="1.0" encoding="UTF-8"?>
<something-else-entirely>
......