1

我有这个 Oracle SQL 查询,我用它来检查数字:

SELECT * from MANAGEDSYSTEMGROUPS where MSYSTEMGROUPID = ?

我想选择与 value 不同的所有值12。我必须如何编辑查询?

4

3 回答 3

1

Oracle 中有两个不等于运算符。<>运算符,它是 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 回答
1

Are you trying to return values that are not set at all?

SELECT * from MANAGEDSYSTEMGROUPS where MSYSTEMGROUPID != 12

Will only return values that have MSYSTEMGROUPID set to a value.

If you want Both values not equal to 12 and values that are not set at all, use this:

SELECT * from MANAGEDSYSTEMGROUPS where MSYSTEMGROUPID  IS NULL OR MSYSTEMGROUPID != 12
于 2012-11-28T19:05:25.270 回答
0

试试这个:-

 SELECT * from MANAGEDSYSTEMGROUPS where MSYSTEMGROUPID != 12
于 2012-11-28T18:40:41.210 回答