Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Eseguire query JSON all'interno della colonna di SQL Server 2012

Onestamente, questa è un'architettura terribile per l'archiviazione dei dati e può causare seri problemi di prestazioni.

Se davvero non hai il controllo per modificare il database, puoi farlo analizzando il valore con SUBSTRING come di seguito, ma sta conducendo un percorso molto infelice:

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

E purtroppo, è il più semplice possibile.