sql >> Base de Datos >  >> RDS >> Sqlserver

Consulta JSON dentro de la columna de SQL Server 2012

Honestamente, esta es una arquitectura terrible para almacenar los datos y puede provocar algunos problemas de rendimiento graves.

Si realmente no tiene control para cambiar la base de datos, puede lograr esto analizando el valor con SUBSTRING como a continuación, pero está conduciendo por un camino muy infeliz:

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

Y lamentablemente, eso es tan fácil como puede ser.