Examples: query, "exact match", wildcard*, wild?ard, wild*rd
Fuzzy search: cake~ (finds cakes, bake)
Term boost: "red velvet"^4, chocolate^2
Field grouping: tags:(+work -"fun-stuff")
Escaping: Escape characters +-&|!(){}[]^"~*?:\ with \, e.g. \+
Range search: properties.timestamp:[1587729413488 TO *] (inclusive), properties.title:{A TO Z}(excluding A and Z)
Combinations: chocolate AND vanilla, chocolate OR vanilla, (chocolate OR vanilla) NOT "vanilla pudding"
Field search: properties.title:"The Title" AND text
Zurück zum Beitrag

Versionen 2

vor 3 Jahren
Jan Zimmerbeutel
272 × 4 Administrator
Ich benutze die Multi-Select-Erweiterung im JobRouter und möchte den Inhalt des gespeicherten JSON-Strings als kommaseparierte Liste in einer Übersicht darstellen.
Ich benutze die Multi-Select-Erweiterung im JobRouter und möchte den Inhalt des gespeicherten JSON-Strings als kommaseparierte Liste in einer Übersicht darstellen.
Angenommen, die fragliche Tabelle sieht so aus: ![file](https://yellowdevs.de/upload/files/1613142525284_grafik.png) Die Funktion OPENJSON hilft uns, die JSON-Spalte zu parsen, mit FOR XML PATH gibt man das Ergebnis als XML Struktur zurück: ``` SELECT name, (SELECT * FROM OPENJSON(j.hobbies) FOR XML PATH('')) FROM jsontest j; ``` Ergebnis: ![file](https://yellowdevs.de/upload/files/1613142952858_grafik.png) Also eine Tabelle, mit den Spalten key, value und type, die in eine XML Struktur umgewandelt wird (die types sind 0: string, 1: number, 2: boolean, 3:null, 4:object, 5:array). Uns interessiert die Spalte **value**: ``` SELECT name, (SELECT value FROM openjson(j.hobbies) FOR XML PATH('')) FROM jsontest j; ``` Ergebnis: ![file](https://yellowdevs.de/upload/files/1613143233931_grafik.png) Die value-tags sollten wir noch per CAST umwandeln: ``` SELECT name, (SELECT CAST(value AS NVARCHAR) FROM openjson(j.hobbies) FOR XML PATH('')) FROM jsontest j; ``` Ergebnis: ![file](https://yellowdevs.de/upload/files/1613143354507_grafik.png) Fehlen noch die Kommata: ``` SELECT name, (SELECT ', ' + CAST(value AS NVARCHAR) FROM openjson(j.hobbies) FOR XML PATH('')) FROM jsontest j; ``` Ergebnis: ![file](https://yellowdevs.de/upload/files/1613143496374_grafik.png) Muss noch das erste Komma und das erste Leerzeichen weg: ``` SELECT name, SUBSTRING((SELECT ', ' + CAST(value AS NVARCHAR) FROM openjson(j.hobbies) FOR XML PATH('')), 3, 10000) AS Hobbies FROM jsontest j; ``` Bei der SQL Server SUBSTRING Funktion braucht man zwingend sowohl einen Start- als auch einen Endwert, deswegen die 10000. Ergebnis: ![file](https://yellowdevs.de/upload/files/1613143807329_grafik.png) Und das wär's :-)
Angenommen, die fragliche Tabelle sieht so aus: ![file](https://yellowdevs.de/upload/files/1613142525284_grafik.png) Die Funktion OPENJSON hilft uns, die JSON-Spalte zu parsen, mit FOR XML PATH gibt das Ergebnis als XML Struktur zurück: ``` SELECT name, (SELECT * FROM OPENJSON(j.hobbies) FOR XML PATH('')) FROM jsontest j; ``` Ergebnis: ![file](https://yellowdevs.de/upload/files/1613142952858_grafik.png) Also eine Tabelle, mit den Spalten key, value und type, die in eine XML Struktur umgewandelt wird (die types sind 0: string, 1: number, 2: boolean, 3:null, 4:object, 5:array). Uns interessiert die Spalte **value**: ``` SELECT name, (SELECT value FROM openjson(j.hobbies) FOR XML PATH('')) FROM jsontest j; ``` Ergebnis: ![file](https://yellowdevs.de/upload/files/1613143233931_grafik.png) Die value-tags sollten wir noch per CAST umwandeln: ``` SELECT name, (SELECT CAST(value AS NVARCHAR) FROM openjson(j.hobbies) FOR XML PATH('')) FROM jsontest j; ``` Ergebnis: ![file](https://yellowdevs.de/upload/files/1613143354507_grafik.png) Fehlen noch die Kommata: ``` SELECT name, (SELECT ', ' + CAST(value AS NVARCHAR) FROM openjson(j.hobbies) FOR XML PATH('')) FROM jsontest j; ``` Ergebnis: ![file](https://yellowdevs.de/upload/files/1613143496374_grafik.png) Muss noch das erste Komma und das erste Leerzeichen weg: ``` SELECT name, SUBSTRING((SELECT ', ' + CAST(value AS NVARCHAR) FROM openjson(j.hobbies) FOR XML PATH('')), 3, 10000) AS Hobbies FROM jsontest j; ``` Bei der SQL Server SUBSTRING Funktion braucht man zwingend sowohl einen Start- als auch einen Endwert, deswegen die 10000. Ergebnis: ![file](https://yellowdevs.de/upload/files/1613143807329_grafik.png) Und das wär's :-)
vor 3 Jahren
Original
Jan Zimmerbeutel
272 × 4 Administrator
Ich benutze die Multi-Select-Erweiterung im JobRouter und möchte den Inhalt des gespeicherten JSON-Strings als kommaseparierte Liste in einer Übersicht darstellen.

Angenommen, die fragliche Tabelle sieht so aus: ![file](https://yellowdevs.de/upload/files/1613142525284_grafik.png) Die Funktion OPENJSON hilft uns, die JSON-Spalte zu parsen, mit FOR XML PATH gibt das Ergebnis als XML Struktur zurück: ``` SELECT name, (SELECT * FROM OPENJSON(j.hobbies) FOR XML PATH('')) FROM jsontest j; ``` Ergebnis: ![file](https://yellowdevs.de/upload/files/1613142952858_grafik.png) Also eine Tabelle, mit den Spalten key, value und type, die in eine XML Struktur umgewandelt wird (die types sind 0: string, 1: number, 2: boolean, 3:null, 4:object, 5:array). Uns interessiert die Spalte **value**: ``` SELECT name, (SELECT value FROM openjson(j.hobbies) FOR XML PATH('')) FROM jsontest j; ``` Ergebnis: ![file](https://yellowdevs.de/upload/files/1613143233931_grafik.png) Die value-tags sollten wir noch per CAST umwandeln: ``` SELECT name, (SELECT CAST(value AS NVARCHAR) FROM openjson(j.hobbies) FOR XML PATH('')) FROM jsontest j; ``` Ergebnis: ![file](https://yellowdevs.de/upload/files/1613143354507_grafik.png) Fehlen noch die Kommata: ``` SELECT name, (SELECT ', ' + CAST(value AS NVARCHAR) FROM openjson(j.hobbies) FOR XML PATH('')) FROM jsontest j; ``` Ergebnis: ![file](https://yellowdevs.de/upload/files/1613143496374_grafik.png) Muss noch das erste Komma und das erste Leerzeichen weg: ``` SELECT name, SUBSTRING((SELECT ', ' + CAST(value AS NVARCHAR) FROM openjson(j.hobbies) FOR XML PATH('')), 3, 10000) AS Hobbies FROM jsontest j; ``` Bei der SQL Server SUBSTRING Funktion braucht man zwingend sowohl einen Start- als auch einen Endwert, deswegen die 10000. Ergebnis: ![file](https://yellowdevs.de/upload/files/1613143807329_grafik.png) Und das wär's :-)