我有这个 Oracle SQL 查询,我用它来检查数字:
SELECT * from MANAGEDSYSTEMGROUPS where MSYSTEMGROUPID = ?
我想选择与 value 不同的所有值12
。我必须如何编辑查询?
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)
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
试试这个:-
SELECT * from MANAGEDSYSTEMGROUPS where MSYSTEMGROUPID != 12