Heim >Datenbank >MySQL-Tutorial >Wie extrahiere ich ein Wertearray aus einem Array von JSON-Objekten in SQL Server 2016?
SQL Server 2016: JSON-Objektarrays in Wertearrays umwandeln
Die JSON-Funktionen von SQL Server 2016 sind robust, aber das Extrahieren bestimmter Datenstrukturen erfordert manchmal kreative Ansätze. Dieses Beispiel zeigt die Umwandlung eines JSON-Arrays von Objekten in ein einfacheres Array von Werten.
Die Herausforderung:
Stellen Sie sich eine Abfrage vor, die ein JSON-Array von Objekten generiert:
<code class="language-sql">SELECT (SELECT item_id FROM #temp FOR JSON PATH, root('ids')) </code>
Dies ergibt JSON wie folgt:
<code class="language-json">{ "ids": [ {"item_id": "1234"}, {"item_id": "5678"}, {"item_id": "7890"} ] }</code>
Das Ziel besteht darin, dies in ein JSON-Array umzustrukturieren, das nur die item_id
-Werte enthält:
<code class="language-json">{ "ids": [ "1234", "5678", "7890" ] }</code>
Die Lösung:
Der Schlüssel ist ein zweistufiger Prozess, der XML als Vermittler nutzt:
<code class="language-sql">SELECT JSON_QUERY('[' + STUFF(( SELECT ',' + '"' + item_id + '"' FROM #temp FOR XML PATH('')),1,1,'') + ']' ) ids FOR JSON PATH, WITHOUT_ARRAY_WRAPPER </code>
Dieser Code verwendet zunächst FOR XML PATH('')
, um die item_id
-Werte zu verketten und jeden in doppelte Anführungszeichen zu setzen. STUFF
entfernt das führende Komma. Das Ergebnis wird dann in eckige Klammern eingeschlossen, um ein gültiges JSON-Array zu erstellen, das JSON_QUERY
analysiert. Schließlich formatiert FOR JSON PATH, WITHOUT_ARRAY_WRAPPER
die Ausgabe als einfaches JSON-Array. Dadurch wird das ursprüngliche JSON-Objektarray effektiv auf das gewünschte Wertearray reduziert.
Das obige ist der detaillierte Inhalt vonWie extrahiere ich ein Wertearray aus einem Array von JSON-Objekten in SQL Server 2016?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!