在PostgreSQL SELECT 查詢中連接字串列
在PostgreSQL中,直接在SELECT查詢中連接字串列並非易事。考慮以下範例:
<code class="language-sql">select a || b from foo;</code>
其中a和b是character(2)型別的欄位。這將傳回NULL,而不是預期中的a和b值的連線結果。
連接字串列最簡單的解決方案是將至少一列強制轉換為text類型:
<code class="language-sql">SELECT a::text || b AS ab FROM foo;</code>
或者,您可以使用concat_ws()
函數,它可以接受任意數量的參數並忽略NULL值:
<code class="language-sql">SELECT concat_ws(', ', a, b) AS ab FROM foo;</code>
如果您不需要分隔符,可以使用concat()
函數:
<code class="language-sql">SELECT concat(a, b) AS ab FROM foo;</code>
concat()
和concat_ws()
都是易變函數,因此不適合用於索引或產生的欄位。如果需要不變性,您可以建立一個自訂的不變函數。
請注意,
運算子在Postgres中不是有效的字串連接運算子。它是Microsoft在其產品中特有的添加。
以上是如何在 PostgreSQL SELECT 查詢中連接字串列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!