我真的是新手與sqlserver。sql查詢不返回空值的結果
我在查詢數據庫中的一些數據,它也返回空值和結果。
我的查詢是;
select amount, distributorid from paymants
一些分銷商在amount column
null values
。
請幫忙!
謝謝
我真的是新手與sqlserver。sql查詢不返回空值的結果
我在查詢數據庫中的一些數據,它也返回空值和結果。
我的查詢是;
select amount, distributorid from paymants
一些分銷商在amount column
null values
。
請幫忙!
謝謝
您應該使用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
我認爲@AnandMeena有很多選項enuf –
@Rony:這是什麼意思?這顯示了查詢數據庫時OP可能面對的三種不同情況。 – Kaf
謝謝@Kaf的詳細解釋,它的工作 – AnandMeena
如果您沒有過濾器(WHERE子句),那麼行將不會被過濾。
SELECT amount, distributorid
FROM paymants
WHERE amount IS NOT NULL
可以使用
SELECT amount, distributorid FROM paymants WHERE amount IS NOT NULL
不過,如果你期待相當於對所有行篩選出與量空值的列,那麼它可能是一個好主意,問爲什麼這些空值首先插入。
當定義表時,如果有一個在你不希望允許空值,你可以,如果你想有NULL值的行指定NOT NULL屬性
CREATE TABLE example (someColumn INT NOT NULL)
列,但該值應爲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
SELECT量,distributorid FROM paymants WHERE量IS NOT NULL
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
希望這些解決方案清除喲你的困惑。
如果您沒有篩選(WHERE子句),那麼行將不會被過濾。 –
您究竟在努力實現什麼?您是否想要獲取非空的「數量」值,或者是否想要將所有空值更改爲空字符串或其他? –