Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Fragen Sie JSON in der Spalte von SQL Server 2012 ab

Ehrlich gesagt ist dies eine schreckliche Architektur zum Speichern der Daten und kann zu ernsthaften Leistungsproblemen führen.

Wenn Sie wirklich keine Kontrolle über die Änderung der Datenbank haben, können Sie erreichen Sie dies, indem Sie den Wert mit SUBSTRING parsen wie unten, aber es führt auf einen sehr unglücklichen Weg:

SELECT *
FROM tb1
JOIN tb2 on tb2.bvin = 
    SUBSTRING(
        tb1.json
        ,CHARINDEX('"bvin":"', tb1.json) + LEN('"bvin":"')
        ,CHARINDEX('"', tb1.json, CHARINDEX('"bvin":"', tb1.json) + LEN('"bvin":"')) - CHARINDEX('"bvin":"', tb1.json) - LEN('"bvin":"')
    )

Und leider ist das so einfach wie es nur sein kann.