不在结果中返回null值的SQL查询

时间:2013-10-19 08:56:34

标签: sql-server

我是sqlserver的新手。

我正在查询数据库中的一些数据,并且还返回带结果的空值。

我的查询是;

select amount, distributorid from paymants

某些发布商在 null values中有amount column

请帮忙!

由于

6 个答案:

答案 0 :(得分:8)

您应该使用is null(或is not null)来过滤空值。

select amount, distributorid 
from paymants
where amount is not null

如果您需要所有具有空金额和其他值(例如-1)的记录,您可以使用isnullcoalesce,如下所示。

select coalesce(amount,-1) amount, distributorid 
from paymants

或者,如果您只需要金额空记录,则可以这样做;

select amount, distributorid 
from paymants
where amount is null 

答案 1 :(得分:1)

您可以使用

过滤掉金额为空值的列
SELECT amount, distributorid FROM paymants WHERE amount IS NOT NULL  

但是,如果您期望所有行的数量,那么最好先询问为什么首先插入这些空值。

定义表时,如果有一列您不希望允许空值,则可以指定NOT NULL属性

CREATE TABLE example ( someColumn INT NOT NULL )

答案 2 :(得分:1)

如果您希望行具有NULL值,但该值应为0,则可以写:

SELECT ISNULL(amount,0), distributorid FROM paymants

关于ISNULL的信息链接 - > http://technet.microsoft.com/en-us/library/ms184325.aspx

并且正如许多其他答案所指出的那样,如果您根本不想要返回这些行,您只需写下:

select amount, distributorid 
from paymants
where amount is not null

答案 3 :(得分:0)

如果没有过滤器(WHERE子句),则不会过滤行。

SELECT amount, distributorid 
FROM paymants
WHERE amount IS NOT NULL

答案 4 :(得分:0)

  

SELECT amount,distributorid FROM paymants WHERE amount IS NOT NULL

答案 5 :(得分:0)

SOLUTION-1:

如果您只需要返回非null值,请尝试以下操作:

select amount, distributorid 
from paymants
where amount is not null

SOLUTION-2:

如果您不仅需要返回非空值,还需要将空值更改为空字符串或任何其他默认值,请尝试以下操作:

首先,将所有空值更改为空字符串或默认值,例如,0:

update paymants
set amount = ''
or amount = 0
where amount is null

接下来,获取记录:

select amount, distributorid
from paymants

希望这些解决方案能够让您感到困惑。