在 SQL 中,BETWEEN 语句是不是必须采用 BETWEEN 最低和最高形式?
Posted
技术标签:
【中文标题】在 SQL 中,BETWEEN 语句是不是必须采用 BETWEEN 最低和最高形式?【英文标题】:In SQL, does a BETWEEN statement have to be of the form BETWEEN lowest AND highest?在 SQL 中,BETWEEN 语句是否必须采用 BETWEEN 最低和最高形式? 【发布时间】:2009-06-20 16:43:41 【问题描述】:例如,如果我这样做了:
SELECT * FROM Users WHERE UserId BETWEEN 100 AND 1
结果如何?
编辑:对不起,你是对的,我应该指定的。我不想知道将返回的确切行数,我只想知道它是否会返回介于 1 和 100 之间的行,或者是否会返回从 min(UserId)
到 1 和 100 到 max(UserId)
的行.
【问题讨论】:
+1,因为我不确定为什么这被否决了 - 诚然,它可能有更多细节 - 但如果你投反对票,至少请礼貌地对你的理由发表评论:) +1 同意。被否决当然也不错。 Andomar 已经回答了这个问题。 +1 我想不出有什么理由会被否决!我很想知道为什么。 我投了反对票。也许我今天心情不好,但不知道为什么尝试一下或快速浏览一下文档会不会更好。 将该语句放在 SQL 提示符中并查看它返回的内容比将其作为问题发布在 SO 上花费的时间更少。 【参考方案1】:a BETWEEN b AND c
是简写
b <= a and a <= c
所以 BETWEEN 100 和 1 不会匹配任何内容。
【讨论】:
当你说 b Matt:不,因为这两个集合的交集是空的(AND 运算符)。如果使用 OR,你会是正确的。【参考方案2】:这可能取决于您的 RDBMS,但为什么不尝试一下呢?在 mysql 上,我从 BETWEEN 100 AND 1 查询中没有得到任何行,而我确实从请求 BETWEEN 1 和 100 中得到行。
【讨论】:
以上是关于在 SQL 中,BETWEEN 语句是不是必须采用 BETWEEN 最低和最高形式?的主要内容,如果未能解决你的问题,请参考以下文章
如何在同一列或不同列的一个sql语句中两次使用'BETWEEN'条件
sql 语句问题,关于BETWEEN AND 和DATE 的