为了账号安全,请及时绑定邮箱和手机立即绑定

请问SQL中存在与IN之间的差异?

请问SQL中存在与IN之间的差异?

德玛西亚99 2019-08-02 11:02:32
SQL中存在与IN之间的差异?之间的区别是什么?EXISTS和INSQL中的子句?我们应该什么时候使用EXISTS,我们应该在什么时候使用IN?
查看完整描述

3 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

EXISTS将告诉您查询是否返回任何结果。例如:

SELECT * FROM Orders o 
WHERE EXISTS (
    SELECT * 
    FROM Products p 
    WHERE p.ProductNumber = o.ProductNumber)

IN用于将一个值与多个值进行比较,并可以使用文字值,如下所示:

SELECT * FROM Orders 
WHERE ProductNumber IN (1, 10, 100)

还可以将查询结果与IN条款如下:

SELECT * FROM Orders 
WHERE ProductNumber IN (
    SELECT ProductNumber 
    FROM Products 
    WHERE ProductInventoryQuantity > 0)



查看完整回答
反对 回复 2019-08-03
?
侃侃尔雅

TA贡献1801条经验 获得超16个赞


基于规则优化器:

  • EXISTS

    IN

    ,当子查询结果非常大时。
  • IN

    EXISTS

    ,当子查询结果非常小时。

基于成本优化器:



查看完整回答
反对 回复 2019-08-03
  • 3 回答
  • 0 关注
  • 383 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信