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.