isnull函数问题……(郁闷中) 因为bit类型的值只有0,1和null,所有非0的数字转为bit类型的值都是1。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这是因为 bit 类型只有两个值 0 和 1;不管isnull后面的第二个值是多少,只要不是0,那么值就是1declare @two intselect isnull(cast(@two as bit),0)select isnull(cast(@two as bit),1)select isnull(cast(@two as bit),2)------------------------------------ ---- 0(所影响的行数为 1 行) ---- 1(所影响的行数为 1 行) ---- 1(所影响的行数为 1 行) 但是print isnull(cast(@two as bit),2)中 cast(@two as bit) 是null 啊!!!这怎么解释……………… 这是因为2是作为bit类型的了,将他强制转换成了bit类型的值,也就是转换成了1,所以它是1,不可能是2,在isnull中,前后两个参数的类型要一样的!如果不一样,那么就把后面的转换为前面类型!你前面的为bit类型,所以它自动把后面的2转换成了bit类型的值(1) 更新语句 sql安装的问题?? 急,求一条SQL查询语句 急,在线等!!!一个数据存储过程的问题 SQL Server 2005 群集安装时第二个节点不可用 如何逐级展开bom 高手请进 用过程或函数实现 菜鸟送分 高手请帮忙关于变量表的存储过程 大数据量,时怎么才能快速删除数据库里的数据? 如何在自己建的数据库中调用扩展存储过程???? 取字符串的SQL语句请大家帮忙 导入大量数据到中介数据库中,而且导入的数据需要做一些处理,用DTS好还是自己写程序好?速度那个快?
不管isnull后面的第二个值是多少,只要不是0,那么值就是1declare @two int
select isnull(cast(@two as bit),0)
select isnull(cast(@two as bit),1)
select isnull(cast(@two as bit),2)
------------------------------------
----
0(所影响的行数为 1 行)
----
1(所影响的行数为 1 行)
----
1(所影响的行数为 1 行)
print isnull(cast(@two as bit),2)
中 cast(@two as bit) 是null 啊!!!
这怎么解释………………