2011-12-27 102 views
1

我想使用SELECT語句從MYSQL DB獲取數據並將其存儲到DataTable中。然後我想使用ASP.NET C#中的數據。問題是,如果有任何NULL或空數據,它會使程序崩潰。無論如何,當記錄/單元格爲空時,設置DEFAULT值(如「0」)或其他值?MYSQL Count or Sum默認值

例如「SELECT testID, userID, testScore FROM tableTestResults」,但有時testScore爲空,因爲它從未完成。林想知道你是否可以爲testScore設置默認值是否有分數。

另一個例子有時你使用COUNT時會得到一個空值,我可以爲它設置一個默認值嗎?

+1

顯示示例查詢。如果你沒有'GROUP BY' - 那麼你不會得到'NULL',你只會得到一個空的結果(這與NULL值不同) – zerkms 2011-12-27 09:32:44

回答

3
SELECT testID, userID, IFNULL(testScore, 42) FROM tableTestResults 

如果你特別有NULL有 - IFNULL將幫助你

+0

簡單的驚人的答案,轟動和快速。 – GreenKhan 2011-12-27 09:40:58

0

你可以這樣做

SELECT testID, userID, 
case(when testScore is null then 100 else testScore end) as testScore 
FROM tableTestResults 
0

當你定義你的數據表,你應該有一個選項標記數據庫字段 NOT NULL,默認0

CREATE TABLE Employee 
(
    ID SMALLINT UNSIGNED NOT NULL, 
    YearBorn YEAR NOT NULL DEFAULT 0 
); 

這樣你永遠不會有空記錄

0

你可以做一些簡單的步驟來修改你的表中的數據並獲得你想要的輸出。

UPDATE tableTestResults SET testScore =0 
WHERE testScore isnull; 

然後用你的SELECT語句

爲將來例如改變testScore列的表,並設置默認值0

+0

這不是一個好主意** **修改原始數據**,而不是隻修改**輸出** – zerkms 2011-12-27 09:52:34

+0

確定thx的建議 – abhijit 2011-12-27 10:23:13