首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

查询一个字段,在查询结果中怎么去空

2013-12-13 
查询一个字段,在查询结果中如何去空?查出来的字段有些是NULL,现需要将为NULL的数据排除,除了在查询条件中

查询一个字段,在查询结果中如何去空?
查出来的字段有些是NULL,现需要将为NULL的数据排除,
除了在查询条件中多加一个“IS NOT NULL”,
请问还有什么更简单的方法?


SELECT [DataSourceID]
FROM [PageControl]
WHERE PageID = 'bec1f1b2-f2a5-45ff-a2cf-48f660b37b3a'
AND DataSourceID IS NOT NULL
去NULL
[解决办法]
也可以这样写,

set ansi_nulls off

SELECT [DataSourceID]
 FROM [PageControl]
 WHERE PageID='bec1f1b2-f2a5-45ff-a2cf-48f660b37b3a'
 AND DataSourceID!=null

[解决办法]
如果你希望方便一点,就这样:


--这样设置后,null也可以用来比较,否则只能用is not null
set ansi_nulls off
 
SELECT [DataSourceID]
 FROM [PageControl]
 WHERE PageID='bec1f1b2-f2a5-45ff-a2cf-48f660b37b3a'
 AND DataSourceID<>null

[解决办法]
isnull(字段,'')<>''
或者
isnull(字段,-1)<>-1
[解决办法]
如果要改,当然可以用isnull()
比如
update tb
set a=isnull(a,'默认值')
where a is null

[解决办法]
这个也可以的,也可以替换的。select isnull(字段名,替换值) from A
[解决办法]
引用:
Quote: 引用:

这个还不简单啊?已经是最简单的了吧。


引用:
好像没有其他方法,难道有特殊要求?


引用:
应该是最简单的了吧,难道还能再简单么?


引用:
如果你希望方便一点,就这样:


--这样设置后,null也可以用来比较,否则只能用is not null
set ansi_nulls off
 
SELECT [DataSourceID]
 FROM [PageControl]
 WHERE PageID='bec1f1b2-f2a5-45ff-a2cf-48f660b37b3a'
 AND DataSourceID<>null


引用:
也可以这样写,

set ansi_nulls off

SELECT [DataSourceID]
 FROM [PageControl]
 WHERE PageID='bec1f1b2-f2a5-45ff-a2cf-48f660b37b3a'
 AND DataSourceID!=null



因为看 ISNULL()函数可以用NULL来替换其它值,所以想着是否也有一个函数用来去除NULL值,而不需要多加一个where条件;
其实没有什么特殊的要求,
只是因为突然想到,所以才提出来的。
嘿嘿……
非常感谢各位的解答


如果要查询,还是必须得用where条件的,除非,你预先把null值都替换为非null的值

热点排行