1

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?

4

3 に答える 3

1

まったく設定されていない値を返そうとしていますか?

SELECT * from MANAGEDSYSTEMGROUPS where MSYSTEMGROUPID != 12

MSYSTEMGROUPID が値に設定されている値のみを返します。

12 以外の値とまったく設定されていない値の両方が必要な場合は、次のようにします。

SELECT * from MANAGEDSYSTEMGROUPS where MSYSTEMGROUPID  IS NULL OR MSYSTEMGROUPID != 12
于 2012-11-28T19:05:25.270 に答える
1

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)
于 2012-11-28T18:40:22.087 に答える