【问题标题】:SQL is IN made redundany by ANY operator?SQL 是否被 ANY 运算符冗余?
【发布时间】:2021-08-09 03:19:21
【问题描述】:

IN 运算符是否被 ANY 运算符冗余?我了解到 IN 和 = ANY 做同样的事情,但 any 也可以与 、 等一起使用。所以我的问题是 IN 是否有任何实际用例,其中 =ANY 不适合?

【问题讨论】:

  • 我认为它们是等价的。
  • 它们在逻辑上提供不同的功能,每个都有特定的用例。
  • 这能回答你的问题吗? SQL: do we need ANY/SOME and ALL keywords? 老实说,大多数人都觉得ANYALL 非常混乱

标签: sql sql-server


【解决方案1】:

至少对于 SQL Server,它们并不完全等效,因为 ANY 似乎不接受像 IN 这样的简单值列表。

-- Works
SELECT 1 WHERE 'A' IN ('A','B')
-- Fails with Incorrect syntax near 'A'.  
SELECT 1 WHERE 'A' = ANY('A','B')
-- Works
SELECT 1 WHERE 'A'= ANY (SELECT 'A' UNION SELECT 'B')

【讨论】:

  • ... WHERE 'A' = any(SELECT 'A' UNION SELECT 'B')
  • @lptr Opps,当然是你的权利,从我测试的内容中复制了错误的行。
猜你喜欢
  • 2022-09-29
  • 2012-05-15
  • 2017-03-20
  • 2018-08-14
  • 1970-01-01
  • 1970-01-01
  • 2017-10-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多