我是sqlserver的新手。
我正在查询数据库中的一些数据,并且还返回带结果的空值。
我的查询是;
select amount, distributorid from paymants
某些发布商在 null values
中有amount column
。
请帮忙!
由于
答案 0 :(得分:8)
您应该使用is null
(或is not null
)来过滤空值。
select amount, distributorid
from paymants
where amount is not null
如果您需要所有具有空金额和其他值(例如-1)的记录,您可以使用isnull
或coalesce
,如下所示。
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
希望这些解决方案能够让您感到困惑。