2013-10-19 52 views
4

我真的是新手與sqlserver。sql查詢不返回空值的結果

我在查詢數據庫中的一些數據,它也返回空值和結果。

我的查詢是;

select amount, distributorid from paymants 

一些分銷商在amount columnnull values

請幫忙!

謝謝

+0

如果您沒有篩選(WHERE子句),那麼行將不會被過濾。 –

+0

您究竟在努力實現什麼?您是否想要獲取非空的「數量」值,或者是否想要將所有空值更改爲空字符串或其他? –

回答

6

您應該使用is null(或is not null)來過濾空值。

select amount, distributorid 
from paymants 
where amount is not null 

如果你需要用空量的所有記錄與另一個值(比如-1),你可以使用isnull或​​3210如下。或者,如果你只需要空數量的記錄,你可以這樣做;或者,

select amount, distributorid 
from paymants 
where amount is null 
+0

我認爲@AnandMeena有很多選項enuf –

+0

@Rony:這是什麼意思?這顯示了查詢數據庫時OP可能面對的三種不同情況。 – Kaf

+1

謝謝@Kaf的詳細解釋,它的工作 – AnandMeena

0

如果您沒有過濾器(WHERE子句),那麼行將不會被過濾。

SELECT amount, distributorid 
FROM paymants 
WHERE amount IS NOT NULL 
1

可以使用

SELECT amount, distributorid FROM paymants WHERE amount IS NOT NULL 

不過,如果你期待相當於對所有行篩選出與量空值的列,那麼它可能是一個好主意,問爲什麼這些空值首先插入。

當定義表時,如果有一個在你不希望允許空值,你可以,如果你想有NULL值的行指定NOT NULL屬性

CREATE TABLE example (someColumn INT NOT NULL) 
1

列,但該值應爲0,而不是可以這樣寫:

SELECT ISNULL(amount,0), distributorid FROM paymants 

有關ISNULL信息鏈接 - >http://technet.microsoft.com/en-us/library/ms184325.aspx

,並得到許多指出其他的答案,如果y OU不希望在所有被返回的行,你可以簡單的寫:

select amount, distributorid 
from paymants 
where amount is not null 
0

SELECT量,distributorid FROM paymants WHERE量IS NOT NULL

0

SOLUTION-1:

如果你只需要簡單地退回沒有空值,那麼請嘗試以下操作:

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 

希望這些解決方案清除喲你的困惑。