Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Interroger JSON dans la colonne SQL Server 2012

Honnêtement, il s'agit d'une architecture terrible pour stocker les données et peut entraîner de graves problèmes de performances.

Si vous n'avez vraiment pas le contrôle pour modifier la base de données, vous pouvez accomplissez cela en analysant la valeur avec SUBSTRING comme ci-dessous, mais cela mène sur un chemin très malheureux :

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

Et malheureusement, c'est aussi simple que possible.