0

テーブルから行のみを返すSQLクエリを作成するにはどうすればよいですか?

たとえば、列Aがnullでなく、列Bが0ではない場合

私が書いている方法は次のとおりです。

where A is not null AND B !=0 

ただし、問題は、クエリ結果によって、列aがnullであるが、列bが0以外である、またはその逆など、条件の1つだけが真である行も削除されることです。

where句の両方の条件が満たされている行のみを削除する(返さない)ためのクエリが必要です。

クエリから取得した結果を、列AがNUllではなく、列BがNOT = 0であるテーブルの行にするだけですが、どちらか一方だけでなく、両方の条件が満たされる必要があります。

4

3 に答える 3

2

私が正しく理解している場合、あなたは次のものを探しています:

where A is not null AND B <> 0  

where 句が実際にはもっと複雑な場合 (たとえば、 も含まORれている場合)、上記を括弧で囲みます。

where (A is not null AND B <> 0) OR ...
于 2012-04-17T15:59:37.257 に答える
1

where 句の両方の条件が満たされた行を返さないクエリが必要です。

WHERE 句を否定したいようです。そのようです:

WHERE NOT (A IS NOT NULL AND B !=0)

これは、二重否定なしで書き直すことができます。

WHERE (A IS NULL OR B = 0 OR B IS NULL)
于 2012-04-17T22:25:51.427 に答える
0

誰かがこの回答をここに投稿しましたが、その後削除しました (理由はわかりませんか?) が、彼らの回答は機能し、そうでした。

WHERE NOT(A is null AND B=0)

使ってみた

where A is not null AND B <> 0   

where (A is not null AND B <> 0) 

ただし、条件の 1 つだけが満たされた場合でも where 句がトリガーされ、両方の条件が満たされた場合にのみトリガーする必要がありました。

繰り返しになりますが、私の質問に対する答えは、以下のコードを使用することでした。

WHERE NOT(A is null AND B=0)

ありがとう!

于 2012-04-19T14:38:08.633 に答える