I have this Oracle SQL query which I use to make checks for number:
SELECT * from MANAGEDSYSTEMGROUPS where MSYSTEMGROUPID = ?
I want to select all values different than the value 12
. How I must edit the query?
まったく設定されていない値を返そうとしていますか?
SELECT * from MANAGEDSYSTEMGROUPS where MSYSTEMGROUPID != 12
MSYSTEMGROUPID が値に設定されている値のみを返します。
12 以外の値とまったく設定されていない値の両方が必要な場合は、次のようにします。
SELECT * from MANAGEDSYSTEMGROUPS where MSYSTEMGROUPID IS NULL OR MSYSTEMGROUPID != 12
Oracle には 2 つの不等号演算子があります。<>
ANSI SQL 標準である!=
演算子と、すべてではないにしてもほとんどのリレーショナル データベースでサポートされている演算子。概念的には、それらは同じ結果を提供するはずですが、この投稿によると、パフォーマンスに影響を与える実行計画が異なる可能性があります。
クエリは次のように表現できます。
SELECT * from MANAGEDSYSTEMGROUPS where MSYSTEMGROUPID != 12
また:
SELECT * from MANAGEDSYSTEMGROUPS where MSYSTEMGROUPID <> 12
複数の値をサポートする場合は、 NOT IN 演算子を使用することもできます。12、15、および 20 を除外する場合は、次のようにします。
SELECT * from MANAGEDSYSTEMGROUPS where MSYSTEMGROUPID NOT IN (12, 15, 20)