SQL Server 2016 JSON 轉換:物件陣列到值陣列
SQL Server 2016 提供強大的 JSON 功能,簡化了報表和整合的資料轉換。 此範例解決了一個常見需求:將 SQL 物件陣列轉換為 JSON 結構中更簡單的值數組。
場景:
考慮一個表,#temp
,包含以下資料:
#臨時表:
|項目 ID | |---|---| | 1234 | 1234 | 5678 | | 7890 |
目標是將這些資料轉換為 JSON,將 item_id
值呈現為單一數組,而不是物件數組。
目標 JSON 結構:
<code class="language-json">{ "ids": [ "1234", "5678", "7890" ] }</code>
解:
這個高效率的查詢實現了所需的轉換:
<code class="language-sql">SELECT JSON_QUERY('[' + STUFF(( SELECT ',' + '"' + CAST(item_id AS VARCHAR(MAX)) + '"' FROM #temp FOR XML PATH('')),1,1,'') + ']' ) AS ids FOR JSON PATH, WITHOUT_ARRAY_WRAPPER;</code>
說明:
查詢巧妙地使用 FOR XML PATH('')
建立一個用逗號分隔的帶引號 item_id
值的字串。 STUFF
刪除前導逗號。 然後將產生的字串括在方括號 ([]
) 中以形成有效的 JSON 數組,並使用 JSON_QUERY
對其進行解析。最後,FOR JSON PATH, WITHOUT_ARRAY_WRAPPER
將輸出格式化為所需的 JSON 物件。
輸出:
執行查詢會產生目標 JSON 結構:
<code class="language-json">{ "ids": [ "1234", "5678", "7890" ] }</code>
此方法提供了一種簡潔有效的方法來管理 SQL Server 2016 中的 JSON 陣列轉換。
以上是如何將 SQL 物件陣列轉換為 JSON 值陣列 (SQL Server 2016)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!