初学者。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,如果加个用户,权限是读所有表,但只能修改某个表的字段属性
没这个说法.
只给SELECT ,
UPDATE的只给某些表
个不会
但只能修改某个表的字段属性 这个难搞
要加权限得针对某个数据库
......
在数据库中有张表,有id,name两列,id 是主键,没有设置自增属性,在程序中取出这张表放入datatable,在这个datatable中插入一条记录,当更新数据库时提示id列不能为空,请问该怎么解决?
给它一个值!!主键不能为空 ......
现在我的本机是用的sqlserver2000版本的(可以正常的连接)。数据连接如下:proxool.xml
XML code:
<?xml version="1.0" encoding="UTF-8"?>
<something-else-entirely>
......
如何显示出 <Long Text>里的数据?
我想问你一下在sql企业管理器里返回的记录中如果将 <Long Text>里的数据显示出来?
用这种的方式可以看到 SELECT CONVERT(VARCHAR(5000),LONGTEX ......
数据库中有这样一个表 table,字段列表是
ID Name CateGory
1 张三 学生
2 李四 &nb ......