<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>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 7.5\. 行排序 在查詢生成輸出表之后,也就是在處理完選擇列表之后,你還可以對輸出表進行排序。 如果沒有排序,那么行將以不可預測的順序返回(實際順序將取決于掃描和連接規劃類型和在磁盤上的順序, 但是肯定不能依賴這些東西)。確定的順序只能在明確地使用了排序步驟之后才能保證。 `ORDER BY`子句用于聲明排序順序: ``` SELECT _select_list_ FROM _table_expression_ ORDER BY _sort_expression1_ [ASC | DESC] [NULLS { FIRST | LAST }] [, `_sort_expression2_` [ASC | DESC] [NULLS { FIRST | LAST }] ...] ``` sort_expression 是任何可用于選擇列表的表達式,例如: ``` SELECT a, b FROM table1 ORDER BY a + b, c; ``` 如果指定了多個排序表達式,那么僅在前面的表達式排序相等的情況下才使用后面的表達式做進一步排序。 每個表達式都可以跟一個可選的`ASC`(升序,默認) 或`DESC`(降序)以設置排序方向。 升序先輸出小的數值,這里的"小"是以`&lt;`操作符的角度定義的。 類似的是,降序是以`&gt;`操作符來判斷的。 \[1\] `NULLS FIRST`和`NULLS LAST`選項可以決定在排序操作中在 non-null 值之前還是之后。默認情況下,空值大于任何非空值;也就是說,`DESC` 排序默認是`NULLS FIRST`,否則為`NULLS LAST`。 注意,排序選項對于每個排序列是相對獨立的。例如`ORDER BY x, y DESC` 意思是說`ORDER BY x ASC, y DESC`,不同于`ORDER BY x DESC, y DESC`。 一個`_sort_expression_`也可以是字段名或字段編號,如: ``` SELECT a + b AS sum, c FROM table1 ORDER BY sum; SELECT a, max(b) FROM table1 GROUP BY a ORDER BY 1; ``` 都按照第一個字段進行排序。需要注意的是,輸出字段名必須是獨立的(不允許在表達式中使用)。 比如,下面的語句是_錯誤_的: ``` SELECT a + b AS sum, c FROM table1 ORDER BY sum + c; -- 錯誤的 ``` 這樣的限制主要是為了避免歧義。另外,如果某個排序表達式能夠同時匹配輸出字段名和表表達式中的字段名, 也會導致歧義(此時使用輸出字段名)。當然,這種情況僅在你使用了`AS` 重命名輸出字段并且恰好與其它表的字段同名的時候才會發生。 `ORDER BY`可以應用于`UNION`, `INTERSECT`,`EXCEPT` 組合的計算結果,不過在這種情況下,只允許按照字段的名字或編號進行排序,而不允許按照表達式進行排序。 ### Notes \[1\] 事實上,PostgreSQL使用_默認的B-tree操作符類_ 為表達式的數據類型確定`ASC`和`DESC`排序順序。 一般來說,數據類型將被轉換為適合于 `&lt;`和 `&gt;`操作符進行排序。但是對于用戶自定義的數據類型可以不必如此。
                  <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>

                              哎呀哎呀视频在线观看