SQL Server 2016 JSON-Konvertierung: Array von Objekten in Array von Werten
SQL Server 2016 bietet leistungsstarke JSON-Funktionen und vereinfacht die Datentransformation für Berichterstellung und Integration. Dieses Beispiel geht auf einen häufigen Bedarf ein: die Konvertierung eines SQL-Arrays von Objekten in ein einfacheres Array von Werten innerhalb einer JSON-Struktur.
Szenario:
Stellen Sie sich eine Tabelle vor, #temp
, die Daten wie diese enthält:
#temp-Tabelle:
| item_id | |---|---| | 1234 | | 5678 | | 7890 |
Das Ziel besteht darin, diese Daten in JSON umzuwandeln und die item_id
Werte als einzelnes Array und nicht als Array von Objekten darzustellen.
Ziel-JSON-Struktur:
<code class="language-json">{ "ids": [ "1234", "5678", "7890" ] }</code>
Lösung:
Diese effiziente Abfrage erreicht die gewünschte Konvertierung:
<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>
Erklärung:
Die Abfrage verwendet geschickt FOR XML PATH('')
, um eine durch Kommas getrennte Zeichenfolge aus in Anführungszeichen gesetzten item_id
-Werten zu erstellen. STUFF
entfernt das führende Komma. Die resultierende Zeichenfolge wird dann in eckige Klammern ([]
) eingeschlossen, um ein gültiges JSON-Array zu bilden, das mit JSON_QUERY
analysiert wird. Abschließend formatiert FOR JSON PATH, WITHOUT_ARRAY_WRAPPER
die Ausgabe als das gewünschte JSON-Objekt.
Ausgabe:
Das Ausführen der Abfrage erzeugt die Ziel-JSON-Struktur:
<code class="language-json">{ "ids": [ "1234", "5678", "7890" ] }</code>
Diese Methode bietet eine präzise und effektive Möglichkeit, JSON-Array-Transformationen in SQL Server 2016 zu verwalten.
Das obige ist der detaillierte Inhalt vonWie konvertiere ich ein SQL-Array von Objekten in ein Array von Werten in JSON (SQL Server 2016)?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!