10

SQL クエリ (MS Access) があり、2 つの列を追加する必要がありますが、どちらも null である可能性があります。例えば:

SELECT Column1, Column2, Column3+Column4 AS [Added Values]
FROM Table

ここで、Column3 または Column4 は null の場合があります。この場合、null をゼロと見なしたい (so 4 + null = 4, null + null = 0)。

これを達成する方法について何か提案はありますか?

4

7 に答える 7

14

Access の ISNULL はブール関数 (1 つのパラメーター) であるため、次のように使用します。

SELECT Column1, Column2, IIF(ISNULL(Column3),0,Column3) + IIF(ISNULL(Column4),0,Column4) AS [Added Values]
FROM Table
于 2008-09-26T02:29:58.850 に答える
4

Allen Browneによると、とはIIF(Column3 is Null; 0; Column3)どちらも VBA 関数であり、VBA 関数を呼び出すと JET クエリの速度が低下 するため、を使用するのが最も速い方法です。NZ()ISNULL()

また、リンクされた SQL Server または Oracle テーブルを操作する場合、IIF 構文はサーバー上で実行されるクエリでもあり、VBA 関数を使用する場合はそうではありません。

于 2011-03-28T15:14:04.697 に答える
2

さらにきれいなのは nz 関数です

nz (column3, 0)
于 2008-09-26T16:28:07.907 に答える
1

テーブル定義で、Column3 と Column4 のデフォルトを 0 に設定します。したがって、これらの列に値がないレコードが追加されると、列の値は 0 になります。したがって、クエリの null 値について心配する必要はありません。

于 2014-10-28T17:59:55.353 に答える
1

ISNULL置換コマンドを使用します。

 SELECT Column1, Column2, ISNULL(Column3, 0) + ISNULL(Column4, 0) AS [Added Values]FROM Table
于 2008-09-26T02:30:50.377 に答える
1

VBA の Nz() 関数は、MS Access クエリで使用できます。

この関数は、指定されたパラメーターの値を NULL に置き換えます。

SELECT Column1, Column2, Nz(Column3, 0) + Nz(Column4, 0) AS [Added Values]
FROM Table
于 2008-09-27T06:00:45.207 に答える
-1

COALESCE を使用します。

SELECT 
   Column1, 
   Column2, 
   COALESCE(Column3, 0) + COALESCE(Column4, 0) AS [Added Values]
FROM Table
于 2008-09-26T12:30:00.333 に答える