sql >> データベース >  >> RDS >> Sqlserver

SQL Server 2012 列内の JSON のクエリ

    正直なところ、これはデータを保存するためのひどいアーキテクチャであり、深刻なパフォーマンスの問題を引き起こす可能性があります.

    データベースを変更する権限が本当にない場合は、変更できます SUBSTRING で値を解析することでこれを実現します 以下のようなものですが、非常に不幸な道をたどっています:

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

    悲しいことに、それは可能な限り簡単です。



    1. MySQLで正規表現を使用する方法は?

    2. DUALテーブルの内部機能?

    3. 派生テーブルのSQLServerROW_NUMBER()OVER()の計算

    4. 条件付きのLEFTOUTERJOIN(どこで、注文するか)?