Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Truy vấn JSON bên trong cột SQL Server 2012

Thành thật mà nói, đây là một kiến ​​trúc tồi tệ để lưu trữ dữ liệu và có thể dẫn đến một số vấn đề nghiêm trọng về hiệu suất.

Nếu bạn thực sự không có quyền kiểm soát để thay đổi cơ sở dữ liệu, bạn có thể thực hiện điều này bằng cách phân tích cú pháp giá trị với SUBSTRING như bên dưới, nhưng nó đang dẫn đến một con đường không mấy vui vẻ:

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

Và đáng buồn thay, điều đó dễ dàng như vậy.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lợi ích của việc cập nhật thay vì thực hiện xóa và sau đó Chèn vào cùng một bảng

  2. lỗi, dữ liệu chuỗi hoặc nhị phân sẽ bị cắt ngắn khi cố gắng chèn

  3. Truy vấn sql với các ký tự đặc biệt - làm thế nào để xử lý?

  4. Tạo Cơ sở dữ liệu SQL Server với SQLOPS

  5. Loại bỏ và tạo lại cơ sở dữ liệu trong Microsoft SQL Server