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

Hàm JSON_ARRAYAGG () trong Oracle

Trong Cơ sở dữ liệu Oracle, JSON_ARRAYAGG() hàm tạo một mảng JSON từ một cột biểu thức SQL.

Cú pháp

Cú pháp như sau:

JSON_ARRAYAGG
  ( expr [ FORMAT JSON ]  [ order_by_clause ]
    [ JSON_on_null_clause ] [ JSON_agg_returning_clause ]
    [ STRICT ] 
  )

Ở đâu:

  • expr là bất kỳ biểu thức SQL nào đánh giá thành một đối tượng JSON, một mảng JSON, một ký tự số, một ký tự văn bản hoặc null .
  • FORMAT JSON cho biết rằng chuỗi đầu vào là JSON và do đó sẽ không được trích dẫn trong đầu ra.
  • order_by_clause cho phép bạn sắp xếp thứ tự các giá trị JSON trong mảng JSON mà câu lệnh trả về.
  • JSON_on_null_clause chỉ định hành vi sẽ sử dụng khi expr đánh giá là null (nghĩa là bao gồm giá trị null trong đầu ra hoặc không).
  • JSON_agg_returning_clause chỉ định kiểu dữ liệu của chuỗi ký tự được trả về bởi hàm này.
  • STRICT kiểm tra xem đầu ra của hàm tạo JSON có đúng là JSON hay không. Nếu kiểm tra không thành công, lỗi cú pháp sẽ xuất hiện.

Ví dụ

Giả sử chúng ta chạy truy vấn SQL sau:

SELECT region_name
FROM regions;

Và nó trả về kết quả sau:

              REGION_NAME 
_________________________ 
Europe                    
Americas                  
Asia                      
Middle East and Africa    

Nếu chúng tôi muốn tất cả các giá trị đó là các phần tử trong một mảng JSON, chúng tôi có thể chuyển tên cột vào JSON_ARRAYAGG() chức năng.

Như thế này:

SELECT JSON_ARRAYAGG(region_name)
FROM regions;

Kết quả:

["Europe","Americas","Asia","Middle East and Africa"]

Đặt hàng theo mệnh đề

Dưới đây là một ví dụ về việc sử dụng ORDER BY mệnh đề trong hàm:

SELECT JSON_ARRAYAGG(
    region_name ORDER BY region_name DESC
    )
FROM regions;

Kết quả:

["Middle East and Africa","Europe","Asia","Americas"]

Ví dụ đó đã sắp xếp các phần tử của mảng theo thứ tự giảm dần.

Đây là thứ tự tăng dần:

SELECT JSON_ARRAYAGG(
    region_name ORDER BY region_name ASC
    )
FROM regions;

Kết quả:

["Americas","Asia","Europe","Middle East and Africa"]

Xem tài liệu Oracle để biết thêm thông tin về chức năng nà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. Cổng PL / SQL trong R11i

  2. Đưa các trường CLOB vào tệp?

  3. Cách tách một chuỗi trong Oracle

  4. Cách thêm máy chủ quản lý trong R12.2

  5. Sự khác biệt giữa lược đồ Oracle và Microsoft là gì?