Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Kueri JSON di dalam kolom SQL Server 2012

Sejujurnya, ini adalah arsitektur yang buruk untuk menyimpan data, dan dapat mengakibatkan beberapa masalah kinerja yang serius.

Jika Anda benar-benar tidak memiliki kendali untuk mengubah database, Anda bisa selesaikan ini dengan menguraikan nilai dengan SUBSTRING seperti di bawah ini, tetapi mengarah ke jalan yang sangat tidak menyenangkan:

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

Dan sayangnya, itu semudah mungkin.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jumlah argumen yang diberikan tidak mencukupi untuk prosedur atau fungsi cdc.fn_cdc_get_all_changes_

  2. Mengapa ekspresi CASE saya non-deterministik?

  3. Bisakah saya membuat Fungsi Sekali Pakai dalam Skrip atau Prosedur Tersimpan?

  4. Penyortiran alami dengan SQL Server

  5. Ubah tipe data varchar menjadi nvarchar di database SQL Server 2005 yang ada. Ada masalah?