-1

いくつかのパラメーターを使用して SQL ステートメントを作成しています。最後に、 "select * from table where column1 = "xyz"".

しかし、このステートメントでフィルタリングされた行も必要です。この場合、それらは列1で値が「xyz」ではない行です。より具体的には、のようなものを探していINVERSE(select * from table where ...)ます。出来ますか?

編集:悪い、私は != または演算子でそれを行うことができることを知っています. この場合、select ステートメントはより複雑になる可能性があります (いくつかの AND と等しい、より大きな演算子を使用)。テーブルに A、B、C があり、SQL ステートメントが結果として A のみをもたらすと仮定しましょう。しかし、A をもたらすステートメントしかないのに、B と C が必要です。

4

5 に答える 5

1

select * from table where column1 != 'xyz' or column1 is null;

于 2012-06-25T13:57:10.910 に答える
0

何かが等しくないかどうかを確認するには、使用することができ<>ます!=

SELECT *
FROM yourTable
WHERE <> 'xyz'

また

SELECT *
FROM yourTable
WHERE != 'xyz'

多くのデータベースベンダー は、両方のバージョンの構文をサポートしています(リストを参照) 。

于 2012-06-25T13:56:32.977 に答える
0

両方の結果セットをほぼ同時に取得していて、xyz最初に処理したい場合は、次のようにします。

select *,CASE WHEN column1 = "xyz" THEN 1 ELSE 0 END as xyz from table
order by CASE WHEN column1 = "xyz" THEN 1 ELSE 0 END desc

これにより、1 つの結果セットにすべての行が返されます。= xyz1 の間、これらはcolumn1=の行でした'xyz'

于 2012-06-25T14:08:11.510 に答える
0

そうだった :

"select * from table where rowId NOT IN (select rowId from table where column1 = "xyz")

これを実現するには、一意の rowId 列が必要でした。

于 2012-06-28T15:09:58.480 に答える
0

他のものが必要な場合は、次のようにします。

select * from table where column1 <> "xyz"

column1 <> (とは異なります) "xyz"

于 2012-06-25T13:52:22.007 に答える