"<>"在Oracle中意味着什么

Jay*_*Jay 33 sql oracle

SQL语言中<>的含义:示例代码如下

SELECT ordid,
       prodid,
       qty
FROM   item
WHERE  prodid IN (SELECT prodid
                  FROM   item
                  WHERE  ordid = 605)
       AND qty IN (SELECT qty
                   FROM   item
                   WHERE  ordid = 605)
       AND ordid <> 605;  
Run Code Online (Sandbox Code Playgroud)

Ale*_*ole 42

这意味着'不等于'.所以你要过滤ordid605的记录.总的来说,你正在寻找任何与分配给605的记录相同prodidqty价值的记录ordid,但这些记录的顺序不同.


bry*_*mck 10

不等于.相反=,相当于!=.

此外,对于每个人的信息,这可以返回非零数量的行.我看到OP已经重新格式化了他的问题,所以它更清楚一点,但据我所知,这找到了记录,其中产品ID在#605的顺序中找到,数量也是如此,但实际上并不是#605.如果订单#605包含1个苹果,2个香蕉和3个蜡笔,#604应该匹配,如果它包含2个苹果(但不是3只狗).它只是不符合#605的订单.(如果ordid是唯一的,那么它会找到完全相同的.)


bwt*_*bwt 5

我很惊讶没有人提到这个null特殊情况。我认为的意思<>更像是

具有一个不等于的值

在这种情况下,它会过滤掉具有ordid605 的项目具有null ordid.

在这种情况下,很明显,这可能ordid是 never null,但记住这null不是来自 <>605 (或来自任何东西)也没什么坏处。