Ärligt talat är detta en fruktansvärd arkitektur för att lagra data och kan resultera i allvarliga prestandaproblem.
Om du verkligen inte har kontroll över att ändra databasen, kan du uppnå detta genom att analysera värdet med SUBSTRING
som nedan, men det leder ner på en mycket olycklig väg:
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":"')
)
Och tyvärr är det så enkelt som det kan vara.