Heim >Datenbank >MySQL-Tutorial >Wie extrahiere ich ein Wertearray aus einem Array von JSON-Objekten in SQL Server 2016?

Wie extrahiere ich ein Wertearray aus einem Array von JSON-Objekten in SQL Server 2016?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-09 18:41:42920Durchsuche

How to Extract an Array of Values from an Array of JSON Objects 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn