8

为什么有两个不同的逻辑运算符似乎做同样的事情(<= & !>),有没有一种情况会优先于另一个?

4

6 回答 6

8

<= 和 > 是比较运算符,而不是逻辑运算符。!是一个逻辑运算符(表示 NOT)。当你结合!和 >,您只是反转比较运算符,因此您的最终结果是相同的。

话虽如此, <= 是常见的形式,所以我会说它是首选,如果没有别的,它是为了可读性。我不知道这两者是否对性能有好处,但我对此表示怀疑。

编辑:另外,你没有说你正在处理哪种风格的 SQL。正如@harryovers 指出的那样,这是MS-SQL 中的有效运算符,但它可能并非在任何地方都有效。

于 2011-11-03T17:45:46.657 回答
3

拥有 !> 替代方案的一个原因是可以轻松地将 SQL 放入 XML 中。小于号引入了 XML 标记。如果带有 < 的 SQL 包含在 XML 或 HTML 中,则必须将其转义为 <。大于号没有任何特殊意义,除非它前面有一个小于号。

于 2014-12-15T15:05:14.440 回答
3

我不明白为什么您会使用其中一个,但!>不在 ISO 标准中,基于此,我会说这<=是首选方式。

于 2011-11-03T17:45:56.303 回答
2

和不是标准比较运算符,仅受少数系统支持,SQL-Server 是其中之一:!=msdn !<: Comparison Operators (Transact-SQL)。MySQL 也支持,但仅限于此,不支持其他两个。!>!=

等效的标准 SQL 比较运算符是<>,>=<=

在所有情况下,我都更喜欢标准。您不知道何时必须将代码迁移到另一个平台(并且要处理的错误更少。)

于 2011-11-03T18:04:50.327 回答
1

不,没有区别。我能想到的唯一原因是让它在特定上下文中更具人类可读性。

例如,出于同样的原因,我会使用< 5,而不是<= 4如果5代表上下文中的某些限制是否有意义。

于 2011-11-03T17:47:02.933 回答
0

When you say logical operators logical is AND and OR I've never seen !> I've seen <>

If you are referring to != and <> they are the same.

于 2011-11-03T17:43:47.810 回答