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

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # VALUES ## Name VALUES?--?計算一個或一組行 ## Synopsis ``` VALUES ( _expression_ [, ...] ) [, ...] [ ORDER BY _sort_expression_ [ ASC | DESC | USING _operator_ ] [, ...] ] [ LIMIT { _count_ | ALL } ] [ OFFSET _start_ [ ROW | ROWS ] ] [ FETCH { FIRST | NEXT } [ _count_ ] { ROW | ROWS } ONLY ] ``` ## 描述 `VALUES`根據給定的值表達式計算一個或一組行的值。 它通常用于在一個較大的命令內生成一個"常數表",但是它也可以用于自身。 如果指定了多行,那么每一行都必須擁有相同的元素個數。 結果表字段的數據類型將根據表達式的明確或隱含的數據類型確定, 使用的規則與`UNION`([Section 10.5](#calibre_link-454))相同。 在大命令里面,`VALUES`允許出現在任何`SELECT`可以出現的地方。 因為它在語法上非常類似于`SELECT`,可以在`VALUES`命令中使用 `ORDER BY`, `LIMIT` (或相等的 `FETCH FIRST`), 和 `OFFSET`子句。 ## 參數 `_expression_` 用于計算或插入結果表指定地點的常量或者表達式。在一個出現在`INSERT` 頂層的`VALUES`列表中,`_expression_` 可以被`DEFAULT`替換以表示插入目的字段的缺省值。除此以外, 當`VALUES`出現在其他場合的時候是不能使用`DEFAULT`的。 `_sort_expression_` 一個表示如何排序結果行的表達式或者整數常量。這個表達式可以按照`column1`, `column2`等等引用`VALUES`的結果列。更多細節參見 [_ORDER BY_ 子句](#calibre_link-1329)。 `_operator_` 一個排序操作符。更多細節參見[_ORDER BY_ 子句](#calibre_link-1329)。 `_count_` 返回的最大行數。更多細節參見 [_LIMIT_ 子句](#calibre_link-1059)。 `_start_` 在開始返回行之前跳過的行數。更多細節參見[_LIMIT_ 子句](#calibre_link-1059)。 ## 注意 應當避免使用`VALUES`返回數量非常大的結果行,否則可能會遭遇內存耗盡或者性能低下。 出現在`INSERT`中的`VALUES`是一個特殊情況, 因為目標字段類型可以從`INSERT`的目標表獲知,并不需要通過掃描`VALUES` 列表來推測,所以在此情況下可以處理非常大的結果行。 ## 例子 一個光禿禿的`VALUES`命令: ``` VALUES (1, 'one'), (2, 'two'), (3, 'three'); ``` 這將返回一個三行兩列的表,它在效果上相當于: ``` SELECT 1 AS column1, 'one' AS column2 UNION ALL SELECT 2, 'two' UNION ALL SELECT 3, 'three'; ``` 通常,`VALUES`會用于一個大 SQL 命令中,最常見的是用于`INSERT`命令: ``` INSERT INTO films (code, title, did, date_prod, kind) VALUES ('T_601', 'Yojimbo', 106, '1961-06-16', 'Drama'); ``` 在用于`INSERT`時,`VALUES`列表中的項可以使用 `DEFAULT`來表示使用字段的缺省值: ``` INSERT INTO films VALUES ('UA502', 'Bananas', 105, DEFAULT, 'Comedy', '82 minutes'), ('T_601', 'Yojimbo', 106, DEFAULT, 'Drama', DEFAULT); ``` `VALUES`還可以用于子`SELECT`可以應用的場合。 比如在一個`FROM`子句中: ``` SELECT f.* FROM films f, (VALUES('MGM', 'Horror'), ('UA', 'Sci-Fi')) AS t (studio, kind) WHERE f.studio = t.studio AND f.kind = t.kind; UPDATE employees SET salary = salary * v.increase FROM (VALUES(1, 200000, 1.2), (2, 400000, 1.4)) AS v (depno, target, increase) WHERE employees.depno = v.depno AND employees.sales >= v.target; ``` 當`VALUES`用于`FROM`子句中的時候,必須使用`AS`子句, 這與用于`SELECT`時一樣。并不要求`AS`子句為每個字段都指定一個別名, 但是這樣做是一個好習慣。PostgreSQL中`VALUES` 缺省的字段名是`column1`, `column2`等等, 但這些缺省的名字并不一定與其他數據庫系統相同。 當`VALUES`用于`INSERT`的時候,所有的值都將按照目標字段自動做類型轉換。 但是在其他場合就可能必須明確指定恰當的數據類型。如果所有的項都是引號包圍的字面常量, 強制指定第一個類型就可以確定所有的類型: ``` SELECT * FROM machines WHERE ip_address IN (VALUES('192.168.0.1'::inet), ('192.168.0.10'), ('192.168.1.43')); ``` > **Tip:** 對于簡單的`IN`測試,更好的方法是依賴于`IN`的標量列表形式, 而不是使用上述`VALUES`查詢。標量列表的方法寫的更少,而且通常也更有效。 ## 兼容性 `VALUES`符合 SQL 標準,此外,`LIMIT` 和`OFFSET`是PostgreSQL擴展; 又見[SELECT](#calibre_link-104)。 ## 又見 [INSERT](#calibre_link-1382), [SELECT](#calibre_link-104)
                  <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>

                              哎呀哎呀视频在线观看