sql >> Database >  >> RDS >> Sqlserver

Query uitvoeren op JSON in kolom SQL Server 2012

Eerlijk gezegd is dit een vreselijke architectuur voor het opslaan van de gegevens en kan dit leiden tot ernstige prestatieproblemen.

Als u echt geen controle heeft om de database te wijzigen, kunt u kunt bereik dit door de waarde te ontleden met SUBSTRING zoals hieronder, maar het leidt tot een zeer ongelukkig pad:

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":"')
    )

En helaas is dat zo eenvoudig als het maar zijn kan.



  1. Zoek opeenvolgende datums binnen een gedefinieerde periode waar een Trainer beschikbaar is om te plannen

  2. SQL Azure:Database XXXYYY op server is momenteel niet beschikbaar

  3. Upload afbeeldingen als BLOB's in Oracle met behulp van PHP

  4. Pl/SQL- Krijg kolomnamen uit een query