随笔-37  评论-155  文章-1  trackbacks-3

string sql=SELECT * FROM DownPC where  ServerIp='';
在使用上面的SQL执行查询的时候遇到一个问题,如果ServerIp内的值为null的时候查询不出来,需要把该字段的值先清空一下,然后在执行上面的查询语句就可以了,但是我现在的问题是不能保证ServerIp的值在为空的时候自动清空,所以试了好多种方法都没有结果。
最后查询SQL Server的函数的时候找到一个IsNull()函数。IsNull函数的作用是使用指定的替换值替换Null。

语法
 
ISNULL ( check_expression , replacement_value )
 

备注
如果 check_expression 不为 NULL,则返回它的值;否则,在将 replacement_value 隐式转换为 check_expression 的类型(如果这两个类型不同)后,则返回前者。

参数
check_expression 

将被检查是否为 NULL 的表达式。check_expression 可以为任何类型。

replacement_value 

当 check_expression 为 NULL 时要返回的表达式。replacement_value 必须是可以隐式转换为 check_expresssion 类型的类型。

返回类型
返回与 check_expression 相同的类型。

示例
A. 将 ISNULL 与 AVG 一起使用
以下示例查找所有产品的重量平均值。它用值 
50 替换 Product 表的 Weight 列中的所有 NULL 项。

 复制代码 
USE AdventureWorks;
GO
SELECT AVG(ISNULL(Weight, 
50))
FROM Production.Product;
GO
 
(以上来自SQL Server联机丛书内容)
所以我现在重新写我上面的SQL语句,
string sql=SELECT * FROM DownPC where  isnull(ServerIp,0)=0;
这样无论该字段内是null还是空都可以查询出来了。
posted on 2007-06-26 17:08 Edwin dong 阅读(2174) 评论(2)  编辑 收藏 网摘 所属分类: SQL Server

评论:
#1楼  2007-06-28 22:11 | Dian      
LZ如果只是找''或是NULL,应该不不着这样吧!
觉得不是好的方法,可能是我学识浅薄!
  回复  引用  查看    
#2楼 [楼主] 2007-06-29 09:33 | Edwin dong      
@Dian
我在我的本地测试过了,对于是''或者是null的,用上面的方法都可以的。
我的数据库是SQL Server2005,不知道是不是环境不同造成的。
  回复  引用  查看    

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2007-06-27 14:51 编辑过
Google站内搜索

China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!
开发者征途系统新作:《设计模式——基于C#的工程化实现及扩展》



相关文章:

相关链接: