2011-12-27 13 views
1

MYSQL DBからデータを取得してDataTableに格納するには、SELECT文を使用します。次に、ASP.NET C#でデータを使用したいと思います。問題は、NULLまたは空のデータがあるとプログラムがクラッシュすることです。レコード/セルが空のときにDEFAULT値を '0'などに設定する必要はありますか?MYSQL数または合計デフォルト値

たとえば、 "SELECT testID, userID, testScore FROM tableTestResults"ですが、testScoreは決して実行されなかったためnullであることがあります。私がスコアがあるかどうかにかかわらず、testScoreのデフォルト値を設定できるかどうか疑問に思っています。

COUNTを使用すると、他の例がnullになることがありますが、デフォルト値を設定することはできますか?あなたは、特にそこNULLをお持ちの場合は

+1

内のテーブルとセットDEFAULT 0を変える未来のインスタンスに対してSELECT文

を使用するクエリの例を表示します。あなたが 'GROUP BY'を持っていなければ' NULL'を取得しません。空の結果が得られます(これは 'NULL'値とは異なります)。 – zerkms

答えて

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

からIFNULLはあなたのデータテーブルを定義するときは、データベースのフィールドをマークするオプションを持っている必要がありますが、そうのような

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

すばらしく簡単な答えです。 – GreenKhan

0

を助けます デフォルト値はNULLではありません。

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

そうすれば、あなたは決してヌルレコードを持たないでしょう。

0

を行うことができ、あなたに

0

あなたのテーブルのデータを修正し、あなたの望みの結果を得るためのいくつかの簡単なステップを行うことができます。

UPDATE tableTestResults SET testScore =0 
WHERE testScore isnull; 

その後testScore列

+0

**出力を変更するのではなく、元のデータ**を修正することは絶対にお勧めしません** – zerkms

+0

ok thxアドバイス – abhijit

関連する問題