zoukankan      html  css  js  c++  java
  • 运算符优先级 (TransactSQL)

    运算符优先级 (Transact-SQL)

    当一个复杂的表达式有多个运算符时,运算符优先级决定执行运算的先后次序。执行的顺序可能严重地影响所得到的值。

    运算符的优先级别如下表中所示。在较低级别的运算符之前先对较高级别的运算符进行求值。

    级别 运算符
    1 ~(位非)
    2 *(乘)、/(除)、%(取模)
    3 +(正)、-(负)、+(加)、(+ 连接)、-(减)、&(位与)
    4 =, >、<、>=、<=、<>、!=、!>、!& amp;lt;(比较运算符)
    5 ^(位异或)、|(位或)
    6 NOT
    7 AND
    8 ALL、ANY、BETWEEN、IN、LIKE、OR、SOME
    9 =(赋值)

    当一个表达式中的两个运算符有相同的运算符优先级别时,将按照它们在表达式中的位置对其从左到右进行求值。例如,在下面的 SET 语句所使用的表达式中,在加运算符之前先对减运算符进行求值。

    DECLARE @MyNumber int
    SET @MyNumber = 4 - 2 + 27
    -- Evaluates to 2 + 27 which yields an expression result of 29.
    Select @MyNumber

    在表达式中使用括号替代所定义的运算符的优先级。首先对括号中的内容进行求值,从而产生一个值,然后括号外的运算符才可以使用这个值。

    例如,在下面的 SET 语句所使用的表达式中,乘运算符具有比加运算符更高的优先级别。因此,先对它进行求值;此表达式的结果为 13

    DECLARE @MyNumber int
    SET @MyNumber = 2 * 4 + 5
    -- Evaluates to 8 + 5 which yields an expression result of 13.
    Select @MyNumber

    在下面的 SET 语句所使用的表达式中,括号使加运算先执行。此表达式的结果为 18

    DECLARE @MyNumber int
    SET @MyNumber = 2 * (4 + 5)
    -- Evaluates to 2 * 9 which yields an expression result of 18.
    Select @MyNumber

    如果表达式有嵌套的括号,那么首先对嵌套最深的表达式求值。以下示例中包含嵌套的括号,其中表达式 5 - 3 在嵌套最深的那对括号中。该表达式产生一个值 2 。然后,加运算符 (+ ) 将此结果与 4 相加。这将生成一个值 6 。最后将 62 相乘,生成表达式的结果 12

    DECLARE @MyNumber int
    SET @MyNumber = 2 * (4 + (5 - 3) )
    -- Evaluates to 2 * (4 + 2) which then evaluates to 2 * 6, and
    -- yields an expression result of 12.
    Select @MyNumber
  • 相关阅读:
    C# 设置 Excel 条件格式 与 冻结窗口
    Exce折叠效果(数据组合)
    [一点一滴学英语]20050829
    Tencent Messenger
    很有趣的一篇文章:不使用Linux的五大理由
    Tencent Messenger (continued)
    N久没有听过这么搞笑的RAP了
    [一点一滴学英语]20050827
    [Eclipse笔记]SWT真正的优势不是快这么简单
    [一点一滴学英语]20050828
  • 原文地址:https://www.cnblogs.com/Gaojier/p/2783545.html
Copyright © 2011-2022 走看看