我真的是 sqlserver 的新手。
我正在从数据库中查询一些数据,它还返回空值和结果。
我的查询是;
select amount, distributorid from paymants
一些分销商已经null values
在 amount column
.
请帮忙!
谢谢
我真的是 sqlserver 的新手。
我正在从数据库中查询一些数据,它还返回空值和结果。
我的查询是;
select amount, distributorid from paymants
一些分销商已经null values
在 amount column
.
请帮忙!
谢谢
您应该使用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
如果您想要具有 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
您可以使用以下方式过滤掉具有空值的列
SELECT amount, distributorid FROM paymants WHERE amount IS NOT NULL
但是,如果您期望所有行的数量,那么最好先询问为什么要插入这些空值。
当你定义表时,如果有一列你不想允许空值,你可以指定 NOT NULL 属性
CREATE TABLE example ( someColumn INT NOT NULL )
如果您没有过滤器(WHERE 子句),则不会过滤行。
SELECT amount, distributorid
FROM paymants
WHERE amount IS NOT NULL
从付款人中选择金额,分发者 ID,其中金额不为空
解决方案-1:
如果您只需要返回非空值,请尝试以下操作:
select amount, distributorid
from paymants
where amount is not null
解决方案-2:
如果你不仅需要返回不为空的值,而且还需要将空值更改为空字符串或任何其他默认值,请尝试以下操作:
首先,将所有空值更改为空字符串或默认值,例如 0:
update paymants
set amount = ''
or amount = 0
where amount is null
接下来,获取记录:
select amount, distributorid
from paymants
希望这些解决方案能消除您的困惑。