„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie extrahiere ich Wertearrays aus JSON -Objekt -Arrays in SQL Server 2016?

Wie extrahiere ich Wertearrays aus JSON -Objekt -Arrays in SQL Server 2016?

Gepostet am 2025-04-18
Durchsuche:682

How to Extract an Array of Values from an Array of JSON Objects in SQL Server 2016?

Die JSON -Funktionen von SQL Server 2016 sind robust, aber das Extrahieren spezifischer Datenstrukturen erfordert manchmal kreative Ansätze. Dieses Beispiel zeigt, wie ein JSON -Array von Objekten in ein einfacheres Array von Werten umgewandelt wird.

Die Herausforderung:

Betrachten Sie eine Abfrage, die ein JSON -Array von Objekten generiert:

select (select item_id Aus #Temp Für JSON PATH, root ('ids'))

SELECT (SELECT item_id 
FROM #temp
FOR JSON PATH, root('ids')) 

{ "IDS": [ {"item_id": "1234"}, {"item_id": "5678"}, {"item_id": "7890"} ] }

{
  "ids": [
    {"item_id": "1234"},
    {"item_id": "5678"},
    {"item_id": "7890"}
  ]
}
Werte enthält:

{ "IDS": [ "1234", "5678", "7890" ] }

{
  "ids": [
    "1234",
    "5678",
    "7890"
  ]
}

Der Schlüssel ist ein zweistufiger Prozess, der XML als Vermittler nutzt:

WÄHLEN JSON_QUERY ('[' Zeug ((select ',' '' item_id '"' '' Aus #temp für xml path ('')), 1,1, '') ']') ids Für JSON Path, ohne_array_wrapper

SELECT  
JSON_QUERY('['   STUFF(( SELECT ','   '"'   item_id   '"' 
FROM #temp FOR XML PATH('')),1,1,'')   ']' ) ids  
FOR JSON PATH, WITHOUT_ARRAY_WRAPPER 
, um die

item_id Werte zu verkettet, die jeweils mit Doppelzitaten umgeben. stuff entfernt das führende Komma. Das Ergebnis wird dann in quadratische Klammern eingewickelt, um ein gültiges JSON -Array zu erstellen, das json_query Parse. Schließlich für JSON -Pfad, ohne_array_wrapper die Ausgabe als einfaches JSON -Array. Dies flacht das ursprüngliche JSON -Objekt -Array effektiv in das gewünschte Wert -Array. .

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3