<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 9.2\. 比較操作符 可用的比較操作符在[Table 9-1](#calibre_link-2189)顯示。 **Table 9-1\. 比較操作符** | 操作符 | 描述 | | --- | --- | | `&lt;` | 小于 | | `&gt;` | 大于 | | `&lt;=` | 小于或等于 | | `&gt;=` | 大于或等于 | | `=` | 等于 | | `&lt;&gt;`或`!=` | 不等于 | > **Note:** `!=`操作符在分析器階段被轉換成`&lt;&gt;`。 `!=`和`&lt;&gt;`操作符是完全等價的。 比較操作符可以用于所有相關的數據類型。所有比較操作符都是雙目操作符, 返回`boolean`類型數值;像`1 &lt; 2 &lt; 3` 這樣的表達式是非法的(因為布爾值和`3`之間不能做比較)。 除了比較操作符以外,我們還可以使用`BETWEEN`構造。 ``` _a_ BETWEEN _x_ AND _y_ ``` 等效于 ``` _a_ >= _x_ AND _a_ <= _y_ ``` 注意`BETWEEN`認為端點值是包含在范圍內的。`NOT BETWEEN` 做相反的比較: ``` _a_ NOT BETWEEN _x_ AND _y_ ``` 等效于 ``` _a_ < _x_ OR _a_ > _y_ ``` `BETWEEN SYMMETRIC`和`BETWEEN`一樣,只是沒有要求 `AND`左邊的參數小于或等于右邊的參數。如果左面的參數不小于或等于右面的參數, 那么兩個參數是自動交換的,所以非空范圍總是適用。 要檢查一個值是否為 NULL ,使用下面的構造: ``` _expression_ IS NULL _expression_ IS NOT NULL ``` 或者等效,但并不標準的構造: ``` _expression_ ISNULL _expression_ NOTNULL ``` _不要_寫`_expression_` = NULL 因為`NULL`是不"等于"`NULL`的。 NULL 代表一個未知的數值,因此我們無法知道兩個未知的數值是否相等。這個行為遵循 SQL 標準。 > **Tip:** 有些應用可能要求表達式`_expression_` = NULL 在`_expression_`為 NULL 時候返回真。 我們強烈建議這樣的應用修改成遵循 SQL 標準。但是,如果這樣修改是不可能的, 那么我們可以打開[transform_null_equals](#calibre_link-1572)配置參數, 讓PostgreSQL將`x = NULL` 自動轉換成`x IS NULL`。 > **Note:** 如果`_expression_`是行值, 那么當行表達式本身為 NULL 或該行的所有字段都為 NULL 時,`IS NULL`將為真; 當行表達式本身不為 NULL 并且該行的所有字段都不為 NULL 時,`IS NOT NULL` 也將為真。因為這個行為,`IS NULL`和`IS NOT NULL` 并不總是為行值表達式返回相反的值,也就是, 一個同時包含NULL和non-null值的行值表達式將在兩種情況下都返回false。 這個規定符合 SQL 標準,但是與PostgreSQL之前的版本不兼容。 如果有任何一個輸入是 NULL ,那么普通的比較操作符生成 NULL(表示"未知"), 而不是true或false。例如,`7 = NULL`生成null,`7 &lt;&gt; NULL` 也生成null。當這種行為不適用時,使用`IS [ NOT ] DISTINCT FROM`構造: ``` _expression_ IS DISTINCT FROM _expression_ _expression_ IS NOT DISTINCT FROM _expression_ ``` 對于非 NULL 的輸入`IS DISTINCT FROM`與`&lt;&gt;` 操作符相同。但是,如果兩個輸入都是 NULL ,那么它將返回假;如果只有一個輸入是 NULL , 那么它將返回真。類似的,對于非 NULL 的輸入`IS NOT DISTINCT FROM` 與`=`操作符相同。但是,如果兩個輸入都是 NULL ,那么它將返回真; 如果只有一個輸入是 NULL ,那么它將返回假。這樣就很有效地把 NULL 當作一個普通數據值看待, 而不是"未知"。 布爾數值可以用下面的構造進行測試 ``` _expression_ IS TRUE _expression_ IS NOT TRUE _expression_ IS FALSE _expression_ IS NOT FALSE _expression_ IS UNKNOWN _expression_ IS NOT UNKNOWN ``` 這些構造將總是返回真或假,從來不返回 NULL ,即使操作數是 NULL 也如此。 NULL 輸入被當做邏輯數值"未知"。請注意實際上`IS UNKNOWN` 和`IS NOT UNKNOWN`分別與`IS NULL`和`IS NOT NULL` 相同,只是輸入表達式必須是布爾類型。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看