Google Standard SQL cho BigQuery hỗ trợ các chức năng sau, có thể truy xuất và chuyển đổi dữ liệu JSON
Tổng quan về chức năng
Các hàm trích xuất JSON tiêu chuẩn [được khuyến nghị]
Các chức năng sau sử dụng dấu ngoặc kép để thoát các ký tự không hợp lệ.
JSON_EXTRACT[json_expr, json_path]
27Hành vi này phù hợp với tiêu chuẩn ANSI
Hàm JSON Mô tảKiểu trả vềTrích xuất một giá trị JSON, chẳng hạn như một mảng hoặc đối tượng hoặc một giá trị vô hướng JSON, chẳng hạn như một chuỗi, số hoặc boolean. Định dạng JSONJSON_EXTRACT[json_expr, json_path]
29 hoặc JSON_EXTRACT[json_expr, json_path]
30Trích xuất một giá trị vô hướng. Một giá trị vô hướng có thể đại diện cho một chuỗi, số hoặc boolean. Loại bỏ các trích dẫn ngoài cùng và bỏ qua các giá trị. Trả về SQL JSON_EXTRACT[json_expr, json_path]
32 nếu một giá trị không vô hướng được chọn. JSON_EXTRACT[json_expr, json_path]
29Trích xuất một mảng các giá trị JSON, chẳng hạn như mảng hoặc đối tượng và các giá trị vô hướng JSON, chẳng hạn như chuỗi, số và booleans. JSON_EXTRACT[json_expr, json_path]
35 hoặc JSON_EXTRACT[json_expr, json_path]
36Trích xuất một mảng các giá trị vô hướng. Một giá trị vô hướng có thể đại diện cho một chuỗi, số hoặc boolean. Loại bỏ các trích dẫn ngoài cùng và bỏ qua các giá trị. Trả về một SQL JSON_EXTRACT[json_expr, json_path]
32 nếu giá trị được chọn không phải là một mảng hoặc không phải là một mảng chỉ chứa các giá trị vô hướng. JSON_EXTRACT[json_expr, json_path]
39Các hàm trích xuất JSON kế thừa
Các chức năng sau sử dụng dấu nháy đơn và dấu ngoặc đơn để thoát các ký tự không hợp lệ.
JSON_EXTRACT[json_expr, json_path]
40Mặc dù các hàm này được Google Standard SQL hỗ trợ, chúng tôi khuyên bạn nên sử dụng các hàm trong bảng trước
Hàm JSON Mô tảKiểu trả vềTrích xuất một giá trị JSON, chẳng hạn như một mảng hoặc đối tượng hoặc một giá trị vô hướng JSON, chẳng hạn như một chuỗi, số hoặc boolean. Định dạng JSONJSON_EXTRACT[json_expr, json_path]
29 hoặc JSON_EXTRACT[json_expr, json_path]
30Trích xuất một giá trị vô hướng. Một giá trị vô hướng có thể đại diện cho một chuỗi, số hoặc boolean. Loại bỏ các trích dẫn ngoài cùng và bỏ qua các giá trị. Trả về SQL JSON_EXTRACT[json_expr, json_path]
32 nếu một giá trị không vô hướng được chọn. JSON_EXTRACT[json_expr, json_path]
29Trích xuất một mảng các giá trị JSON, chẳng hạn như mảng hoặc đối tượng và các giá trị vô hướng JSON, chẳng hạn như chuỗi, số và booleans. JSON_EXTRACT[json_expr, json_path]
35 hoặc JSON_EXTRACT[json_expr, json_path]
36Trích xuất một mảng các giá trị vô hướng. Một giá trị vô hướng có thể đại diện cho một chuỗi, số hoặc boolean. Loại bỏ các trích dẫn ngoài cùng và bỏ qua các giá trị. Trả về một SQL JSON_EXTRACT[json_expr, json_path]
32 nếu giá trị được chọn không phải là một mảng hoặc không phải là một mảng chỉ chứa các giá trị vô hướng. JSON_EXTRACT[json_expr, json_path]
39Các hàm JSON khác
Hàm JSONMô tảKiểu trả vềNhận một chuỗi có định dạng JSON và trả về một giá trị JSON.JSON_EXTRACT[json_expr, json_path]
30Nhận một giá trị SQL và trả về một giá trị JSON. JSON_EXTRACT[json_expr, json_path]
30Nhận một giá trị SQL và trả về một biểu diễn chuỗi có định dạng JSON của giá trị. Định dạng JSON JSON_EXTRACT[json_expr, json_path]
29Trích xuất một chuỗi từ JSON. JSON_EXTRACT[json_expr, json_path]
29Trích xuất một boolean từ JSON. JSON_EXTRACT[json_expr, json_path]
61Trích xuất số nguyên 64 bit từ JSON. JSON_EXTRACT[json_expr, json_path]
63Trích xuất số dấu phẩy động 64 bit từ JSON. JSON_EXTRACT[json_expr, json_path]
65Trả về loại giá trị JSON ngoài cùng dưới dạng chuỗi. JSON_EXTRACT[json_expr, json_path]
29JSON_EXTRACT[json_expr, json_path]
41
JSON_EXTRACT[json_expr, json_path]
JSON_EXTRACT[json_string_expr, json_path]
JSON_EXTRACT[json_expr, json_path]
Sự miêu tả
Trích xuất một giá trị JSON, chẳng hạn như một mảng hoặc đối tượng hoặc một giá trị vô hướng JSON, chẳng hạn như một chuỗi, số hoặc boolean. Nếu khóa JSON sử dụng các ký tự không hợp lệ, thì bạn có thể thoát các ký tự đó bằng dấu ngoặc đơn và dấu ngoặc đơn
70. Một chuỗi có định dạng JSON. Ví dụJSON_EXTRACT[json_expr, json_path]
'{"class" : {"students" : [{"name" : "Jane"}]}}'
Trích xuất SQL
32 khi gặp chuỗi định dạng JSONJSON_EXTRACT[json_expr, json_path]
72. Ví dụJSON_EXTRACT[json_expr, json_path]
SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
73. JSON. Ví dụJSON_EXTRACT[json_expr, json_path]
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
Trích xuất một JSON
72 khi gặp một JSONJSON_EXTRACT[json_expr, json_path]
72JSON_EXTRACT[json_expr, json_path]
SELECT JSON_EXTRACT[JSON 'null', "$"] -- Returns a JSON 'null'
76. Các. Điều này xác định dữ liệu mà bạn muốn lấy từ đầu vàoJSON_EXTRACT[json_expr, json_path]
loại trả lại
70. Một định dạng JSONJSON_EXTRACT[json_expr, json_path]
29JSON_EXTRACT[json_expr, json_path]
73.JSON_EXTRACT[json_expr, json_path]
30JSON_EXTRACT[json_expr, json_path]
ví dụ
Trong ví dụ sau, dữ liệu JSON được trích xuất và trả về dưới dạng JSON
SELECT
JSON_EXTRACT[JSON '{"class":{"students":[{"id":5},{"id":12}]}}', '$.class']
AS json_data;
+-----------------------------------+
| json_data |
+-----------------------------------+
| {"students":[{"id":5},{"id":12}]} |
+-----------------------------------+
Trong các ví dụ sau, dữ liệu JSON được trích xuất và trả về dưới dạng chuỗi có định dạng JSON
SELECT JSON_EXTRACT[json_text, '$'] AS json_text_string
FROM UNNEST[[
'{"class" : {"students" : [{"name" : "Jane"}]}}',
'{"class" : {"students" : []}}',
'{"class" : {"students" : [{"name" : "John"}, {"name": "Jamie"}]}}'
]] AS json_text;
+-----------------------------------------------------------+
| json_text_string |
+-----------------------------------------------------------+
| {"class":{"students":[{"name":"Jane"}]}} |
| {"class":{"students":[]}} |
| {"class":{"students":[{"name":"John"},{"name":"Jamie"}]}} |
+-----------------------------------------------------------+
SELECT JSON_EXTRACT[json_text, '$.class.students[0]'] AS first_student
FROM UNNEST[[
'{"class" : {"students" : [{"name" : "Jane"}]}}',
'{"class" : {"students" : []}}',
'{"class" : {"students" : [{"name" : "John"}, {"name": "Jamie"}]}}'
]] AS json_text;
+-----------------+
| first_student |
+-----------------+
| {"name":"Jane"} |
| NULL |
| {"name":"John"} |
+-----------------+
SELECT JSON_EXTRACT[json_text, '$.class.students[1].name'] AS second_student_name
FROM UNNEST[[
'{"class" : {"students" : [{"name" : "Jane"}]}}',
'{"class" : {"students" : []}}',
'{"class" : {"students" : [{"name" : "John"}, {"name" : null}]}}',
'{"class" : {"students" : [{"name" : "John"}, {"name": "Jamie"}]}}'
]] AS json_text;
+-------------------+
| second_student |
+-------------------+
| NULL |
| NULL |
| NULL |
| "Jamie" |
+-------------------+
JSON_EXTRACT[json_expr, json_path]
0_______0_______1JSON_EXTRACT[json_expr, json_path]
2JSON_EXTRACT[json_expr, json_path]
28
JSON_EXTRACT[json_expr, json_path]
JSON_EXTRACT[json_expr, json_path]
3JSON_EXTRACT[json_expr, json_path]
4Sự miêu tả
Trích xuất một giá trị JSON, chẳng hạn như một mảng hoặc đối tượng hoặc một giá trị vô hướng JSON, chẳng hạn như một chuỗi, số hoặc boolean. Nếu khóa JSON sử dụng các ký tự không hợp lệ thì bạn có thể thoát các ký tự đó bằng dấu ngoặc kép
70. Một chuỗi có định dạng JSON. Ví dụJSON_EXTRACT[json_expr, json_path]
'{"class" : {"students" : [{"name" : "Jane"}]}}'
Trích xuất SQL
32 khi gặp chuỗi định dạng JSONJSON_EXTRACT[json_expr, json_path]
72. Ví dụJSON_EXTRACT[json_expr, json_path]
6JSON_EXTRACT[json_expr, json_path]
73. JSON. Ví dụJSON_EXTRACT[json_expr, json_path]
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
Trích xuất một JSON
72 khi gặp một JSONJSON_EXTRACT[json_expr, json_path]
72JSON_EXTRACT[json_expr, json_path]
8JSON_EXTRACT[json_expr, json_path]
76. Các. Điều này xác định dữ liệu mà bạn muốn lấy từ đầu vàoJSON_EXTRACT[json_expr, json_path]
loại trả lại
70. Một định dạng JSONJSON_EXTRACT[json_expr, json_path]
29JSON_EXTRACT[json_expr, json_path]
73.JSON_EXTRACT[json_expr, json_path]
30JSON_EXTRACT[json_expr, json_path]
ví dụ
Trong ví dụ sau, dữ liệu JSON được trích xuất và trả về dưới dạng JSON
JSON_EXTRACT[json_expr, json_path]
9Trong các ví dụ sau, dữ liệu JSON được trích xuất và trả về dưới dạng chuỗi có định dạng JSON
'{"class" : {"students" : [{"name" : "Jane"}]}}'
0_______30_______1'{"class" : {"students" : [{"name" : "Jane"}]}}'
2'{"class" : {"students" : [{"name" : "Jane"}]}}'
3'{"class" : {"students" : [{"name" : "Jane"}]}}'
4'{"class" : {"students" : [{"name" : "Jane"}]}}'
5JSON_EXTRACT[json_expr, json_path]
44
JSON_EXTRACT[json_expr, json_path]
'{"class" : {"students" : [{"name" : "Jane"}]}}'
6_______30_______7Sự miêu tả
Trích xuất một giá trị vô hướng và sau đó trả về nó dưới dạng một chuỗi. Một giá trị vô hướng có thể đại diện cho một chuỗi, số hoặc boolean. Loại bỏ các trích dẫn ngoài cùng và bỏ qua các giá trị trả về. Nếu khóa JSON sử dụng các ký tự không hợp lệ, thì bạn có thể thoát các ký tự đó bằng dấu ngoặc đơn và dấu ngoặc đơn
70. Một chuỗi có định dạng JSON. Ví dụJSON_EXTRACT[json_expr, json_path]
'{"class" : {"students" : [{"name" : "Jane"}]}}'
73. JSON. Ví dụJSON_EXTRACT[json_expr, json_path]
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
76. Các. Điều này xác định dữ liệu mà bạn muốn lấy từ đầu vào. Nếu thông số tùy chọn này không được cung cấp thì ký hiệu JSONPathJSON_EXTRACT[json_expr, json_path]
97 sẽ được áp dụng, nghĩa là tất cả dữ liệu được phân tíchJSON_EXTRACT[json_expr, json_path]
Nếu
76 trả về một JSONJSON_EXTRACT[json_expr, json_path]
72 hoặc một giá trị không vô hướng [nói cách khác, nếuJSON_EXTRACT[json_expr, json_path]
76 đề cập đến một đối tượng hoặc một mảng], thì một SQLJSON_EXTRACT[json_expr, json_path]
32 được trả vềJSON_EXTRACT[json_expr, json_path]
loại trả lại
JSON_EXTRACT[json_expr, json_path]
29ví dụ
Trong ví dụ sau,
'{"class" : {"students" : [{"name" : "Jane"}]}}'
03 được trích xuấtSELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
0Ví dụ sau so sánh cách kết quả được trả về cho các hàm
JSON_EXTRACT[json_expr, json_path]
41 và JSON_EXTRACT[json_expr, json_path]
44SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
1SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
2Trong trường hợp khóa JSON sử dụng các ký tự JSONPath không hợp lệ, bạn có thể thoát các ký tự đó bằng cách sử dụng dấu ngoặc đơn và dấu ngoặc đơn,
'{"class" : {"students" : [{"name" : "Jane"}]}}'
06. Ví dụSELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
3JSON_EXTRACT[json_expr, json_path]
31
JSON_EXTRACT[json_expr, json_path]
SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
4SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
5Sự miêu tả
Trích xuất một giá trị vô hướng và sau đó trả về nó dưới dạng một chuỗi. Một giá trị vô hướng có thể đại diện cho một chuỗi, số hoặc boolean. Loại bỏ các trích dẫn ngoài cùng và bỏ qua các giá trị trả về. Nếu khóa JSON sử dụng các ký tự không hợp lệ thì bạn có thể thoát các ký tự đó bằng dấu ngoặc kép
70. Một chuỗi có định dạng JSON. Ví dụJSON_EXTRACT[json_expr, json_path]
'{"class" : {"students" : [{"name" : "Jane"}]}}'
73. JSON. Ví dụJSON_EXTRACT[json_expr, json_path]
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
76. Các. Điều này xác định dữ liệu mà bạn muốn lấy từ đầu vào. Nếu thông số tùy chọn này không được cung cấp thì ký hiệu JSONPathJSON_EXTRACT[json_expr, json_path]
97 sẽ được áp dụng, nghĩa là tất cả dữ liệu được phân tíchJSON_EXTRACT[json_expr, json_path]
Nếu
76 trả về một JSONJSON_EXTRACT[json_expr, json_path]
72 hoặc một giá trị không vô hướng [nói cách khác, nếuJSON_EXTRACT[json_expr, json_path]
76 đề cập đến một đối tượng hoặc một mảng], thì một SQLJSON_EXTRACT[json_expr, json_path]
32 được trả vềJSON_EXTRACT[json_expr, json_path]
loại trả lại
JSON_EXTRACT[json_expr, json_path]
29ví dụ
Trong ví dụ sau, dữ liệu JSON được trích xuất và trả về dưới dạng giá trị vô hướng
SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
8Ví dụ sau so sánh cách kết quả được trả về cho các hàm
JSON_EXTRACT[json_expr, json_path]
28 và JSON_EXTRACT[json_expr, json_path]
31SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
9____35_______0Trong trường hợp khóa JSON sử dụng các ký tự JSONPath không hợp lệ, bạn có thể thoát các ký tự đó bằng dấu ngoặc kép. Ví dụ
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
1JSON_EXTRACT[json_expr, json_path]
47
JSON_EXTRACT[json_expr, json_path]
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
2JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
3Sự miêu tả
Trích xuất một mảng các giá trị JSON, chẳng hạn như mảng hoặc đối tượng và các giá trị vô hướng JSON, chẳng hạn như chuỗi, số và booleans. Nếu khóa JSON sử dụng các ký tự không hợp lệ, thì bạn có thể thoát các ký tự đó bằng dấu ngoặc đơn và dấu ngoặc đơn
70. Một chuỗi có định dạng JSON. Ví dụJSON_EXTRACT[json_expr, json_path]
'{"class" : {"students" : [{"name" : "Jane"}]}}'
73. JSON. Ví dụJSON_EXTRACT[json_expr, json_path]
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
76. Các. Điều này xác định dữ liệu mà bạn muốn lấy từ đầu vào. Nếu thông số tùy chọn này không được cung cấp thì ký hiệu JSONPathJSON_EXTRACT[json_expr, json_path]
97 sẽ được áp dụng, nghĩa là tất cả dữ liệu được phân tíchJSON_EXTRACT[json_expr, json_path]
loại trả lại
70.JSON_EXTRACT[json_expr, json_path]
35JSON_EXTRACT[json_expr, json_path]
73.JSON_EXTRACT[json_expr, json_path]
36JSON_EXTRACT[json_expr, json_path]
ví dụ
Thao tác này trích xuất các mục trong JSON thành một mảng gồm _______30 giá trị
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
6Thao tác này trích xuất các mục trong chuỗi có định dạng JSON thành một mảng chuỗi
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
7Điều này trích xuất một mảng chuỗi và chuyển đổi nó thành một mảng số nguyên
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
8Điều này trích xuất các giá trị chuỗi trong một chuỗi có định dạng JSON thành một mảng
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
9Điều này chỉ trích xuất các mục trong thuộc tính
'{"class" : {"students" : [{"name" : "Jane"}]}}'
29 thành một mảngSELECT JSON_EXTRACT[JSON 'null', "$"] -- Returns a JSON 'null'
0Đây là tương đương
SELECT JSON_EXTRACT[JSON 'null', "$"] -- Returns a JSON 'null'
1Trong trường hợp khóa JSON sử dụng các ký tự JSONPath không hợp lệ, bạn có thể thoát các ký tự đó bằng cách sử dụng dấu ngoặc đơn và dấu ngoặc đơn,
'{"class" : {"students" : [{"name" : "Jane"}]}}'
06. Ví dụSELECT JSON_EXTRACT[JSON 'null', "$"] -- Returns a JSON 'null'
2Các ví dụ sau khám phá cách xử lý các yêu cầu không hợp lệ và mảng trống
- Nếu JSONPath không hợp lệ, sẽ xảy ra lỗi
- Nếu một chuỗi định dạng JSON không hợp lệ, đầu ra là NULL
- Có thể có các mảng trống trong chuỗi định dạng JSON
SELECT JSON_EXTRACT[JSON 'null', "$"] -- Returns a JSON 'null'
3JSON_EXTRACT[json_expr, json_path]
34
JSON_EXTRACT[json_expr, json_path]
SELECT JSON_EXTRACT[JSON 'null', "$"] -- Returns a JSON 'null'
4SELECT JSON_EXTRACT[JSON 'null', "$"] -- Returns a JSON 'null'
5Sự miêu tả
Trích xuất một mảng các giá trị JSON, chẳng hạn như mảng hoặc đối tượng và các giá trị vô hướng JSON, chẳng hạn như chuỗi, số và booleans. Nếu khóa JSON sử dụng các ký tự không hợp lệ thì bạn có thể thoát các ký tự đó bằng dấu ngoặc kép
70. Một chuỗi có định dạng JSON. Ví dụJSON_EXTRACT[json_expr, json_path]
'{"class" : {"students" : [{"name" : "Jane"}]}}'
73. JSON. Ví dụJSON_EXTRACT[json_expr, json_path]
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
76. Các. Điều này xác định dữ liệu mà bạn muốn lấy từ đầu vào. Nếu thông số tùy chọn này không được cung cấp thì ký hiệu JSONPathJSON_EXTRACT[json_expr, json_path]
97 sẽ được áp dụng, nghĩa là tất cả dữ liệu được phân tíchJSON_EXTRACT[json_expr, json_path]
loại trả lại
70.JSON_EXTRACT[json_expr, json_path]
35JSON_EXTRACT[json_expr, json_path]
73.JSON_EXTRACT[json_expr, json_path]
36JSON_EXTRACT[json_expr, json_path]
ví dụ
Thao tác này trích xuất các mục trong JSON thành một mảng gồm _______30 giá trị
SELECT JSON_EXTRACT[JSON 'null', "$"] -- Returns a JSON 'null'
8Thao tác này trích xuất các mục trong chuỗi có định dạng JSON thành một mảng chuỗi
SELECT JSON_EXTRACT[JSON 'null', "$"] -- Returns a JSON 'null'
9Điều này trích xuất một mảng chuỗi và chuyển đổi nó thành một mảng số nguyên
SELECT
JSON_EXTRACT[JSON '{"class":{"students":[{"id":5},{"id":12}]}}', '$.class']
AS json_data;
+-----------------------------------+
| json_data |
+-----------------------------------+
| {"students":[{"id":5},{"id":12}]} |
+-----------------------------------+
0Điều này trích xuất các giá trị chuỗi trong một chuỗi có định dạng JSON thành một mảng
SELECT
JSON_EXTRACT[JSON '{"class":{"students":[{"id":5},{"id":12}]}}', '$.class']
AS json_data;
+-----------------------------------+
| json_data |
+-----------------------------------+
| {"students":[{"id":5},{"id":12}]} |
+-----------------------------------+
1Điều này chỉ trích xuất các mục trong thuộc tính
'{"class" : {"students" : [{"name" : "Jane"}]}}'
29 thành một mảngSELECT
JSON_EXTRACT[JSON '{"class":{"students":[{"id":5},{"id":12}]}}', '$.class']
AS json_data;
+-----------------------------------+
| json_data |
+-----------------------------------+
| {"students":[{"id":5},{"id":12}]} |
+-----------------------------------+
2Đây là tương đương
SELECT
JSON_EXTRACT[JSON '{"class":{"students":[{"id":5},{"id":12}]}}', '$.class']
AS json_data;
+-----------------------------------+
| json_data |
+-----------------------------------+
| {"students":[{"id":5},{"id":12}]} |
+-----------------------------------+
3Trong trường hợp khóa JSON sử dụng các ký tự JSONPath không hợp lệ, bạn có thể thoát các ký tự đó bằng dấu ngoặc kép.
'{"class" : {"students" : [{"name" : "Jane"}]}}'
42. Ví dụSELECT
JSON_EXTRACT[JSON '{"class":{"students":[{"id":5},{"id":12}]}}', '$.class']
AS json_data;
+-----------------------------------+
| json_data |
+-----------------------------------+
| {"students":[{"id":5},{"id":12}]} |
+-----------------------------------+
4Các ví dụ sau đây cho thấy cách xử lý các yêu cầu không hợp lệ và mảng trống
SELECT
JSON_EXTRACT[JSON '{"class":{"students":[{"id":5},{"id":12}]}}', '$.class']
AS json_data;
+-----------------------------------+
| json_data |
+-----------------------------------+
| {"students":[{"id":5},{"id":12}]} |
+-----------------------------------+
5JSON_EXTRACT[json_expr, json_path]
50
JSON_EXTRACT[json_expr, json_path]
SELECT
JSON_EXTRACT[JSON '{"class":{"students":[{"id":5},{"id":12}]}}', '$.class']
AS json_data;
+-----------------------------------+
| json_data |
+-----------------------------------+
| {"students":[{"id":5},{"id":12}]} |
+-----------------------------------+
6_______44_______7Sự miêu tả
Trích xuất một mảng các giá trị vô hướng và trả về một mảng các giá trị vô hướng có định dạng chuỗi. Một giá trị vô hướng có thể đại diện cho một chuỗi, số hoặc boolean. Nếu khóa JSON sử dụng các ký tự không hợp lệ, bạn có thể thoát khỏi các ký tự đó bằng cách sử dụng dấu ngoặc đơn và dấu ngoặc đơn
70. Một chuỗi có định dạng JSON. Ví dụJSON_EXTRACT[json_expr, json_path]
'{"class" : {"students" : [{"name" : "Jane"}]}}'
73. JSON. Ví dụJSON_EXTRACT[json_expr, json_path]
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
76. Các. Điều này xác định dữ liệu mà bạn muốn lấy từ đầu vào. Nếu thông số tùy chọn này không được cung cấp thì ký hiệu JSONPathJSON_EXTRACT[json_expr, json_path]
97 sẽ được áp dụng, nghĩa là tất cả dữ liệu được phân tíchJSON_EXTRACT[json_expr, json_path]
Hãy cẩn thận
- Một JSON
72 trong mảng đầu vào tạo ra một SQLJSON_EXTRACT[json_expr, json_path]
32 làm đầu ra cho JSON đóJSON_EXTRACT[json_expr, json_path]
72. Nếu đầu ra chứa một phần tử mảngJSON_EXTRACT[json_expr, json_path]
32, thì sẽ xảy ra lỗi vì đầu ra cuối cùng không thể là một mảng có giá trịJSON_EXTRACT[json_expr, json_path]
32JSON_EXTRACT[json_expr, json_path]
- Nếu một JSONPath khớp với một mảng chứa các đối tượng vô hướng và một JSON
72, thì đầu ra của hàm phải được chuyển đổi vì đầu ra cuối cùng không thể là một mảng có các giá trịJSON_EXTRACT[json_expr, json_path]
32JSON_EXTRACT[json_expr, json_path]
loại trả lại
JSON_EXTRACT[json_expr, json_path]
39ví dụ
Điều này trích xuất các mục trong JSON thành một mảng chuỗi
SELECT JSON_EXTRACT[json_text, '$'] AS json_text_string
FROM UNNEST[[
'{"class" : {"students" : [{"name" : "Jane"}]}}',
'{"class" : {"students" : []}}',
'{"class" : {"students" : [{"name" : "John"}, {"name": "Jamie"}]}}'
]] AS json_text;
+-----------------------------------------------------------+
| json_text_string |
+-----------------------------------------------------------+
| {"class":{"students":[{"name":"Jane"}]}} |
| {"class":{"students":[]}} |
| {"class":{"students":[{"name":"John"},{"name":"Jamie"}]}} |
+-----------------------------------------------------------+
0Ví dụ sau so sánh cách kết quả được trả về cho các hàm
JSON_EXTRACT[json_expr, json_path]
47 và JSON_EXTRACT[json_expr, json_path]
50SELECT JSON_EXTRACT[json_text, '$'] AS json_text_string
FROM UNNEST[[
'{"class" : {"students" : [{"name" : "Jane"}]}}',
'{"class" : {"students" : []}}',
'{"class" : {"students" : [{"name" : "John"}, {"name": "Jamie"}]}}'
]] AS json_text;
+-----------------------------------------------------------+
| json_text_string |
+-----------------------------------------------------------+
| {"class":{"students":[{"name":"Jane"}]}} |
| {"class":{"students":[]}} |
| {"class":{"students":[{"name":"John"},{"name":"Jamie"}]}} |
+-----------------------------------------------------------+
1Thao tác này trích xuất các mục trong chuỗi có định dạng JSON thành một mảng chuỗi
SELECT JSON_EXTRACT[json_text, '$'] AS json_text_string
FROM UNNEST[[
'{"class" : {"students" : [{"name" : "Jane"}]}}',
'{"class" : {"students" : []}}',
'{"class" : {"students" : [{"name" : "John"}, {"name": "Jamie"}]}}'
]] AS json_text;
+-----------------------------------------------------------+
| json_text_string |
+-----------------------------------------------------------+
| {"class":{"students":[{"name":"Jane"}]}} |
| {"class":{"students":[]}} |
| {"class":{"students":[{"name":"John"},{"name":"Jamie"}]}} |
+-----------------------------------------------------------+
2Điều này trích xuất một mảng chuỗi và chuyển đổi nó thành một mảng số nguyên
SELECT JSON_EXTRACT[json_text, '$'] AS json_text_string
FROM UNNEST[[
'{"class" : {"students" : [{"name" : "Jane"}]}}',
'{"class" : {"students" : []}}',
'{"class" : {"students" : [{"name" : "John"}, {"name": "Jamie"}]}}'
]] AS json_text;
+-----------------------------------------------------------+
| json_text_string |
+-----------------------------------------------------------+
| {"class":{"students":[{"name":"Jane"}]}} |
| {"class":{"students":[]}} |
| {"class":{"students":[{"name":"John"},{"name":"Jamie"}]}} |
+-----------------------------------------------------------+
3Đây là tương đương
SELECT JSON_EXTRACT[json_text, '$'] AS json_text_string
FROM UNNEST[[
'{"class" : {"students" : [{"name" : "Jane"}]}}',
'{"class" : {"students" : []}}',
'{"class" : {"students" : [{"name" : "John"}, {"name": "Jamie"}]}}'
]] AS json_text;
+-----------------------------------------------------------+
| json_text_string |
+-----------------------------------------------------------+
| {"class":{"students":[{"name":"Jane"}]}} |
| {"class":{"students":[]}} |
| {"class":{"students":[{"name":"John"},{"name":"Jamie"}]}} |
+-----------------------------------------------------------+
4Trong trường hợp khóa JSON sử dụng các ký tự JSONPath không hợp lệ, bạn có thể thoát các ký tự đó bằng dấu ngoặc đơn và dấu ngoặc đơn.
'{"class" : {"students" : [{"name" : "Jane"}]}}'
06. Ví dụSELECT JSON_EXTRACT[json_text, '$'] AS json_text_string
FROM UNNEST[[
'{"class" : {"students" : [{"name" : "Jane"}]}}',
'{"class" : {"students" : []}}',
'{"class" : {"students" : [{"name" : "John"}, {"name": "Jamie"}]}}'
]] AS json_text;
+-----------------------------------------------------------+
| json_text_string |
+-----------------------------------------------------------+
| {"class":{"students":[{"name":"Jane"}]}} |
| {"class":{"students":[]}} |
| {"class":{"students":[{"name":"John"},{"name":"Jamie"}]}} |
+-----------------------------------------------------------+
5Các ví dụ sau khám phá cách xử lý các yêu cầu không hợp lệ và mảng trống
SELECT JSON_EXTRACT[json_text, '$'] AS json_text_string
FROM UNNEST[[
'{"class" : {"students" : [{"name" : "Jane"}]}}',
'{"class" : {"students" : []}}',
'{"class" : {"students" : [{"name" : "John"}, {"name": "Jamie"}]}}'
]] AS json_text;
+-----------------------------------------------------------+
| json_text_string |
+-----------------------------------------------------------+
| {"class":{"students":[{"name":"Jane"}]}} |
| {"class":{"students":[]}} |
| {"class":{"students":[{"name":"John"},{"name":"Jamie"}]}} |
+-----------------------------------------------------------+
6JSON_EXTRACT[json_expr, json_path]
37
JSON_EXTRACT[json_expr, json_path]
SELECT JSON_EXTRACT[json_text, '$'] AS json_text_string
FROM UNNEST[[
'{"class" : {"students" : [{"name" : "Jane"}]}}',
'{"class" : {"students" : []}}',
'{"class" : {"students" : [{"name" : "John"}, {"name": "Jamie"}]}}'
]] AS json_text;
+-----------------------------------------------------------+
| json_text_string |
+-----------------------------------------------------------+
| {"class":{"students":[{"name":"Jane"}]}} |
| {"class":{"students":[]}} |
| {"class":{"students":[{"name":"John"},{"name":"Jamie"}]}} |
+-----------------------------------------------------------+
7SELECT JSON_EXTRACT[json_text, '$'] AS json_text_string
FROM UNNEST[[
'{"class" : {"students" : [{"name" : "Jane"}]}}',
'{"class" : {"students" : []}}',
'{"class" : {"students" : [{"name" : "John"}, {"name": "Jamie"}]}}'
]] AS json_text;
+-----------------------------------------------------------+
| json_text_string |
+-----------------------------------------------------------+
| {"class":{"students":[{"name":"Jane"}]}} |
| {"class":{"students":[]}} |
| {"class":{"students":[{"name":"John"},{"name":"Jamie"}]}} |
+-----------------------------------------------------------+
8Sự miêu tả
Trích xuất một mảng các giá trị vô hướng và trả về một mảng các giá trị vô hướng có định dạng chuỗi. Một giá trị vô hướng có thể đại diện cho một chuỗi, số hoặc boolean. Nếu khóa JSON sử dụng các ký tự không hợp lệ, bạn có thể thoát các ký tự đó bằng dấu ngoặc kép
70. Một chuỗi có định dạng JSON. Ví dụJSON_EXTRACT[json_expr, json_path]
'{"class" : {"students" : [{"name" : "Jane"}]}}'
73. JSON. Ví dụJSON_EXTRACT[json_expr, json_path]
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
76. Các. Điều này xác định dữ liệu mà bạn muốn lấy từ đầu vào. Nếu thông số tùy chọn này không được cung cấp thì ký hiệu JSONPathJSON_EXTRACT[json_expr, json_path]
97 sẽ được áp dụng, nghĩa là tất cả dữ liệu được phân tíchJSON_EXTRACT[json_expr, json_path]
Hãy cẩn thận
- Một JSON
72 trong mảng đầu vào tạo ra một SQLJSON_EXTRACT[json_expr, json_path]
32 làm đầu ra cho JSONJSON_EXTRACT[json_expr, json_path]
72. Nếu đầu ra chứa một phần tử mảngJSON_EXTRACT[json_expr, json_path]
32, thì sẽ xảy ra lỗi vì đầu ra cuối cùng không thể là một mảng có giá trịJSON_EXTRACT[json_expr, json_path]
32JSON_EXTRACT[json_expr, json_path]
- Nếu một JSONPath khớp với một mảng chứa các đối tượng vô hướng và một JSON
72, thì đầu ra của hàm phải được chuyển đổi vì đầu ra cuối cùng không thể là một mảng có các giá trịJSON_EXTRACT[json_expr, json_path]
32JSON_EXTRACT[json_expr, json_path]
loại trả lại
JSON_EXTRACT[json_expr, json_path]
39ví dụ
Điều này trích xuất các mục trong JSON thành một mảng chuỗi
SELECT JSON_EXTRACT[json_text, '$.class.students[0]'] AS first_student
FROM UNNEST[[
'{"class" : {"students" : [{"name" : "Jane"}]}}',
'{"class" : {"students" : []}}',
'{"class" : {"students" : [{"name" : "John"}, {"name": "Jamie"}]}}'
]] AS json_text;
+-----------------+
| first_student |
+-----------------+
| {"name":"Jane"} |
| NULL |
| {"name":"John"} |
+-----------------+
1Ví dụ sau so sánh cách kết quả được trả về cho các hàm
JSON_EXTRACT[json_expr, json_path]
34 và JSON_EXTRACT[json_expr, json_path]
37SELECT JSON_EXTRACT[json_text, '$.class.students[0]'] AS first_student
FROM UNNEST[[
'{"class" : {"students" : [{"name" : "Jane"}]}}',
'{"class" : {"students" : []}}',
'{"class" : {"students" : [{"name" : "John"}, {"name": "Jamie"}]}}'
]] AS json_text;
+-----------------+
| first_student |
+-----------------+
| {"name":"Jane"} |
| NULL |
| {"name":"John"} |
+-----------------+
2Thao tác này trích xuất các mục trong chuỗi có định dạng JSON thành một mảng chuỗi
SELECT JSON_EXTRACT[json_text, '$.class.students[0]'] AS first_student
FROM UNNEST[[
'{"class" : {"students" : [{"name" : "Jane"}]}}',
'{"class" : {"students" : []}}',
'{"class" : {"students" : [{"name" : "John"}, {"name": "Jamie"}]}}'
]] AS json_text;
+-----------------+
| first_student |
+-----------------+
| {"name":"Jane"} |
| NULL |
| {"name":"John"} |
+-----------------+
3Điều này trích xuất một mảng chuỗi và chuyển đổi nó thành một mảng số nguyên
SELECT JSON_EXTRACT[json_text, '$.class.students[0]'] AS first_student
FROM UNNEST[[
'{"class" : {"students" : [{"name" : "Jane"}]}}',
'{"class" : {"students" : []}}',
'{"class" : {"students" : [{"name" : "John"}, {"name": "Jamie"}]}}'
]] AS json_text;
+-----------------+
| first_student |
+-----------------+
| {"name":"Jane"} |
| NULL |
| {"name":"John"} |
+-----------------+
4Đây là tương đương
SELECT JSON_EXTRACT[json_text, '$.class.students[0]'] AS first_student
FROM UNNEST[[
'{"class" : {"students" : [{"name" : "Jane"}]}}',
'{"class" : {"students" : []}}',
'{"class" : {"students" : [{"name" : "John"}, {"name": "Jamie"}]}}'
]] AS json_text;
+-----------------+
| first_student |
+-----------------+
| {"name":"Jane"} |
| NULL |
| {"name":"John"} |
+-----------------+
5Trong trường hợp khóa JSON sử dụng các ký tự JSONPath không hợp lệ, bạn có thể thoát các ký tự đó bằng dấu ngoặc kép.
'{"class" : {"students" : [{"name" : "Jane"}]}}'
42. Ví dụSELECT JSON_EXTRACT[json_text, '$.class.students[0]'] AS first_student
FROM UNNEST[[
'{"class" : {"students" : [{"name" : "Jane"}]}}',
'{"class" : {"students" : []}}',
'{"class" : {"students" : [{"name" : "John"}, {"name": "Jamie"}]}}'
]] AS json_text;
+-----------------+
| first_student |
+-----------------+
| {"name":"Jane"} |
| NULL |
| {"name":"John"} |
+-----------------+
6Các ví dụ sau khám phá cách xử lý các yêu cầu không hợp lệ và mảng trống
SELECT JSON_EXTRACT[json_text, '$.class.students[0]'] AS first_student
FROM UNNEST[[
'{"class" : {"students" : [{"name" : "Jane"}]}}',
'{"class" : {"students" : []}}',
'{"class" : {"students" : [{"name" : "John"}, {"name": "Jamie"}]}}'
]] AS json_text;
+-----------------+
| first_student |
+-----------------+
| {"name":"Jane"} |
| NULL |
| {"name":"John"} |
+-----------------+
7JSON_EXTRACT[json_expr, json_path]
53
JSON_EXTRACT[json_expr, json_path]
SELECT JSON_EXTRACT[json_text, '$.class.students[0]'] AS first_student
FROM UNNEST[[
'{"class" : {"students" : [{"name" : "Jane"}]}}',
'{"class" : {"students" : []}}',
'{"class" : {"students" : [{"name" : "John"}, {"name": "Jamie"}]}}'
]] AS json_text;
+-----------------+
| first_student |
+-----------------+
| {"name":"Jane"} |
| NULL |
| {"name":"John"} |
+-----------------+
8Sự miêu tả
Nhận một giá trị SQL
JSON_EXTRACT[json_expr, json_path]
29 và trả về một giá trị SQL JSON_EXTRACT[json_expr, json_path]
30. Giá trị JSON_EXTRACT[json_expr, json_path]
29 đại diện cho giá trị JSON có định dạng chuỗiHàm này hỗ trợ một đối số có tên bắt buộc tùy chọn có tên là
'{"class" : {"students" : [{"name" : "Jane"}]}}'
79 xác định cách xử lý các số không thể lưu trữ trong giá trị JSON_EXTRACT[json_expr, json_path]
30 mà không làm giảm độ chính xác. Nếu được sử dụng, '{"class" : {"students" : [{"name" : "Jane"}]}}'
79 phải bao gồm một trong các giá trị này
82. Chỉ chấp nhận các số có thể được lưu trữ mà không làm giảm độ chính xác. Nếu gặp phải một số không thể lưu trữ mà không làm mất độ chính xác, hàm sẽ đưa ra lỗi'{"class" : {"students" : [{"name" : "Jane"}]}}'
83. Nếu gặp phải một số không thể lưu trữ mà không làm mất độ chính xác, hãy thử làm tròn số đó thành một số có thể được lưu trữ mà không làm mất độ chính xác. Nếu không làm tròn số thì hàm báo lỗi'{"class" : {"students" : [{"name" : "Jane"}]}}'
Nếu
'{"class" : {"students" : [{"name" : "Jane"}]}}'
79 không được sử dụng, chức năng ngầm định bao gồm '{"class" : {"students" : [{"name" : "Jane"}]}}'
85. Nếu một số xuất hiện trong một đối tượng hoặc mảng JSON, thì đối số '{"class" : {"students" : [{"name" : "Jane"}]}}'
79 được áp dụng cho số đó trong đối tượng hoặc mảngCác số từ các miền sau có thể được lưu trữ trong JSON mà không làm giảm độ chính xác
- Số nguyên có dấu/không dấu 64 bit, chẳng hạn như
63JSON_EXTRACT[json_expr, json_path]
65JSON_EXTRACT[json_expr, json_path]
loại trả lại
JSON_EXTRACT[json_expr, json_path]
30ví dụ
Trong ví dụ sau, một chuỗi có định dạng JSON được chuyển đổi thành
JSON_EXTRACT[json_expr, json_path]
30SELECT JSON_EXTRACT[json_text, '$.class.students[0]'] AS first_student
FROM UNNEST[[
'{"class" : {"students" : [{"name" : "Jane"}]}}',
'{"class" : {"students" : []}}',
'{"class" : {"students" : [{"name" : "John"}, {"name": "Jamie"}]}}'
]] AS json_text;
+-----------------+
| first_student |
+-----------------+
| {"name":"Jane"} |
| NULL |
| {"name":"John"} |
+-----------------+
9Các truy vấn sau không thành công vì
- Số đã được chuyển vào không thể được lưu trữ mà không làm mất độ chính xác
85 được sử dụng hoàn toàn trong truy vấn đầu tiên và rõ ràng trong truy vấn thứ hai'{"class" : {"students" : [{"name" : "Jane"}]}}'
SELECT JSON_EXTRACT[json_text, '$.class.students[1].name'] AS second_student_name
FROM UNNEST[[
'{"class" : {"students" : [{"name" : "Jane"}]}}',
'{"class" : {"students" : []}}',
'{"class" : {"students" : [{"name" : "John"}, {"name" : null}]}}',
'{"class" : {"students" : [{"name" : "John"}, {"name": "Jamie"}]}}'
]] AS json_text;
+-------------------+
| second_student |
+-------------------+
| NULL |
| NULL |
| NULL |
| "Jamie" |
+-------------------+
0Truy vấn sau làm tròn số thành một số có thể được lưu trữ trong JSON
SELECT JSON_EXTRACT[json_text, '$.class.students[1].name'] AS second_student_name
FROM UNNEST[[
'{"class" : {"students" : [{"name" : "Jane"}]}}',
'{"class" : {"students" : []}}',
'{"class" : {"students" : [{"name" : "John"}, {"name" : null}]}}',
'{"class" : {"students" : [{"name" : "John"}, {"name": "Jamie"}]}}'
]] AS json_text;
+-------------------+
| second_student |
+-------------------+
| NULL |
| NULL |
| NULL |
| "Jamie" |
+-------------------+
1JSON_EXTRACT[json_expr, json_path]
55
JSON_EXTRACT[json_expr, json_path]
SELECT JSON_EXTRACT[json_text, '$.class.students[1].name'] AS second_student_name
FROM UNNEST[[
'{"class" : {"students" : [{"name" : "Jane"}]}}',
'{"class" : {"students" : []}}',
'{"class" : {"students" : [{"name" : "John"}, {"name" : null}]}}',
'{"class" : {"students" : [{"name" : "John"}, {"name": "Jamie"}]}}'
]] AS json_text;
+-------------------+
| second_student |
+-------------------+
| NULL |
| NULL |
| NULL |
| "Jamie" |
+-------------------+
2Sự miêu tả
Nhận một giá trị SQL và trả về một giá trị JSON. Giá trị phải là loại dữ liệu SQL Chuẩn của Google được hỗ trợ. Bạn có thể xem lại các loại dữ liệu SQL Chuẩn của Google mà chức năng này hỗ trợ và mã hóa JSON của chúng
Hàm này hỗ trợ một đối số có tên bắt buộc tùy chọn có tên là
'{"class" : {"students" : [{"name" : "Jane"}]}}'
93- Nếu đối số này là
94, các giá trị số bên ngoài miền loại'{"class" : {"students" : [{"name" : "Jane"}]}}'
65 được mã hóa dưới dạng chuỗiJSON_EXTRACT[json_expr, json_path]
- Nếu đối số này không được sử dụng hoặc là
96, thì các giá trị số bên ngoài miền loại'{"class" : {"students" : [{"name" : "Jane"}]}}'
65 không được mã hóa dưới dạng chuỗi nhưng được lưu trữ dưới dạng số JSON. Nếu một giá trị số không thể được lưu trữ trong JSON mà không làm mất độ chính xác, thì sẽ xảy ra lỗiJSON_EXTRACT[json_expr, json_path]
Các loại dữ liệu số sau đây bị ảnh hưởng bởi đối số
'{"class" : {"students" : [{"name" : "Jane"}]}}'
93
63JSON_EXTRACT[json_expr, json_path]
00SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
01SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
Nếu một trong các loại dữ liệu số này xuất hiện trong loại dữ liệu vùng chứa, chẳng hạn như
SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
02 hoặc SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
03, thì đối số '{"class" : {"students" : [{"name" : "Jane"}]}}'
93 được áp dụng cho loại dữ liệu số trong loại dữ liệu vùng chứaloại trả lại
Một giá trị JSON
ví dụ
Trong ví dụ sau, truy vấn chuyển đổi các hàng trong bảng thành giá trị JSON
SELECT JSON_EXTRACT[json_text, '$.class.students[1].name'] AS second_student_name
FROM UNNEST[[
'{"class" : {"students" : [{"name" : "Jane"}]}}',
'{"class" : {"students" : []}}',
'{"class" : {"students" : [{"name" : "John"}, {"name" : null}]}}',
'{"class" : {"students" : [{"name" : "John"}, {"name": "Jamie"}]}}'
]] AS json_text;
+-------------------+
| second_student |
+-------------------+
| NULL |
| NULL |
| NULL |
| "Jamie" |
+-------------------+
3Trong ví dụ sau, truy vấn trả về một giá trị số lớn dưới dạng chuỗi JSON
SELECT JSON_EXTRACT[json_text, '$.class.students[1].name'] AS second_student_name
FROM UNNEST[[
'{"class" : {"students" : [{"name" : "Jane"}]}}',
'{"class" : {"students" : []}}',
'{"class" : {"students" : [{"name" : "John"}, {"name" : null}]}}',
'{"class" : {"students" : [{"name" : "John"}, {"name": "Jamie"}]}}'
]] AS json_text;
+-------------------+
| second_student |
+-------------------+
| NULL |
| NULL |
| NULL |
| "Jamie" |
+-------------------+
4Trong ví dụ sau, cả hai truy vấn đều trả về một giá trị số lớn dưới dạng số JSON
SELECT JSON_EXTRACT[json_text, '$.class.students[1].name'] AS second_student_name
FROM UNNEST[[
'{"class" : {"students" : [{"name" : "Jane"}]}}',
'{"class" : {"students" : []}}',
'{"class" : {"students" : [{"name" : "John"}, {"name" : null}]}}',
'{"class" : {"students" : [{"name" : "John"}, {"name": "Jamie"}]}}'
]] AS json_text;
+-------------------+
| second_student |
+-------------------+
| NULL |
| NULL |
| NULL |
| "Jamie" |
+-------------------+
5Trong ví dụ sau, chỉ các giá trị số lớn mới được chuyển thành chuỗi JSON
SELECT JSON_EXTRACT[json_text, '$.class.students[1].name'] AS second_student_name
FROM UNNEST[[
'{"class" : {"students" : [{"name" : "Jane"}]}}',
'{"class" : {"students" : []}}',
'{"class" : {"students" : [{"name" : "John"}, {"name" : null}]}}',
'{"class" : {"students" : [{"name" : "John"}, {"name": "Jamie"}]}}'
]] AS json_text;
+-------------------+
| second_student |
+-------------------+
| NULL |
| NULL |
| NULL |
| "Jamie" |
+-------------------+
6Trong ví dụ này, các giá trị
SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
05 [_______0_______63] và SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
07 [JSON_EXTRACT[json_expr, json_path]
65] được chuyển đổi thành siêu kiểu chung JSON_EXTRACT[json_expr, json_path]
65, không bị ảnh hưởng bởi đối số '{"class" : {"students" : [{"name" : "Jane"}]}}'
93SELECT JSON_EXTRACT[json_text, '$.class.students[1].name'] AS second_student_name
FROM UNNEST[[
'{"class" : {"students" : [{"name" : "Jane"}]}}',
'{"class" : {"students" : []}}',
'{"class" : {"students" : [{"name" : "John"}, {"name" : null}]}}',
'{"class" : {"students" : [{"name" : "John"}, {"name": "Jamie"}]}}'
]] AS json_text;
+-------------------+
| second_student |
+-------------------+
| NULL |
| NULL |
| NULL |
| "Jamie" |
+-------------------+
7JSON_EXTRACT[json_expr, json_path]
57
JSON_EXTRACT[json_expr, json_path]
SELECT JSON_EXTRACT[json_text, '$.class.students[1].name'] AS second_student_name
FROM UNNEST[[
'{"class" : {"students" : [{"name" : "Jane"}]}}',
'{"class" : {"students" : []}}',
'{"class" : {"students" : [{"name" : "John"}, {"name" : null}]}}',
'{"class" : {"students" : [{"name" : "John"}, {"name": "Jamie"}]}}'
]] AS json_text;
+-------------------+
| second_student |
+-------------------+
| NULL |
| NULL |
| NULL |
| "Jamie" |
+-------------------+
8Sự miêu tả
Nhận một giá trị SQL và trả về một biểu diễn chuỗi có định dạng JSON của giá trị. Giá trị phải là loại dữ liệu SQL Chuẩn của Google được hỗ trợ. Bạn có thể xem lại các loại dữ liệu SQL Chuẩn của Google mà chức năng này hỗ trợ và mã hóa JSON của chúng
Hàm này hỗ trợ một tham số boolean tùy chọn có tên là
SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
12. Nếu SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
12 là SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
14, giá trị trả về được định dạng để dễ đọcloại trả lại
Một định dạng JSON
JSON_EXTRACT[json_expr, json_path]
29ví dụ
Chuyển đổi các hàng trong bảng thành các chuỗi có định dạng JSON
SELECT JSON_EXTRACT[json_text, '$.class.students[1].name'] AS second_student_name
FROM UNNEST[[
'{"class" : {"students" : [{"name" : "Jane"}]}}',
'{"class" : {"students" : []}}',
'{"class" : {"students" : [{"name" : "John"}, {"name" : null}]}}',
'{"class" : {"students" : [{"name" : "John"}, {"name": "Jamie"}]}}'
]] AS json_text;
+-------------------+
| second_student |
+-------------------+
| NULL |
| NULL |
| NULL |
| "Jamie" |
+-------------------+
9Chuyển đổi các hàng trong bảng thành các chuỗi có định dạng JSON dễ đọc
JSON_EXTRACT[json_expr, json_path]
00JSON_EXTRACT[json_expr, json_path]
29
JSON_EXTRACT[json_expr, json_path]
JSON_EXTRACT[json_expr, json_path]
01Sự miêu tả
Lấy một biểu thức JSON, trích xuất một chuỗi JSON và trả về giá trị đó dưới dạng SQL
JSON_EXTRACT[json_expr, json_path]
29. Nếu biểu thức là SQL JSON_EXTRACT[json_expr, json_path]
32, hàm trả về SQL JSON_EXTRACT[json_expr, json_path]
32. Nếu giá trị JSON được trích xuất không phải là một chuỗi, thì sẽ xảy ra lỗi
73. JSON. Ví dụJSON_EXTRACT[json_expr, json_path]
02JSON_EXTRACT[json_expr, json_path]
loại trả lại
JSON_EXTRACT[json_expr, json_path]
29ví dụ
JSON_EXTRACT[json_expr, json_path]
03____0_______04Các ví dụ sau đây cho thấy cách xử lý các yêu cầu không hợp lệ
JSON_EXTRACT[json_expr, json_path]
05JSON_EXTRACT[json_expr, json_path]
61
JSON_EXTRACT[json_expr, json_path]
JSON_EXTRACT[json_expr, json_path]
06Sự miêu tả
Lấy một biểu thức JSON, trích xuất một giá trị logic JSON và trả về giá trị đó dưới dạng SQL
JSON_EXTRACT[json_expr, json_path]
61. Nếu biểu thức là SQL JSON_EXTRACT[json_expr, json_path]
32, hàm trả về SQL JSON_EXTRACT[json_expr, json_path]
32. Nếu giá trị JSON được trích xuất không phải là giá trị boolean, thì sẽ xảy ra lỗi
73. JSON. Ví dụJSON_EXTRACT[json_expr, json_path]
02JSON_EXTRACT[json_expr, json_path]
loại trả lại
JSON_EXTRACT[json_expr, json_path]
61ví dụ
JSON_EXTRACT[json_expr, json_path]
08JSON_EXTRACT[json_expr, json_path]
09Các ví dụ sau đây cho thấy cách xử lý các yêu cầu không hợp lệ
JSON_EXTRACT[json_expr, json_path]
10JSON_EXTRACT[json_expr, json_path]
63
JSON_EXTRACT[json_expr, json_path]
JSON_EXTRACT[json_expr, json_path]
11Sự miêu tả
Lấy một biểu thức JSON, trích xuất một số JSON và trả về giá trị đó dưới dạng SQL
JSON_EXTRACT[json_expr, json_path]
63. Nếu biểu thức là SQL JSON_EXTRACT[json_expr, json_path]
32, hàm trả về SQL JSON_EXTRACT[json_expr, json_path]
32. Nếu số JSON được trích xuất có một phần phân số hoặc nằm ngoài miền INT64, thì sẽ xảy ra lỗi
73. JSON. Ví dụJSON_EXTRACT[json_expr, json_path]
02JSON_EXTRACT[json_expr, json_path]
loại trả lại
JSON_EXTRACT[json_expr, json_path]
63ví dụ
JSON_EXTRACT[json_expr, json_path]
13JSON_EXTRACT[json_expr, json_path]
14JSON_EXTRACT[json_expr, json_path]
15Các ví dụ sau đây cho thấy cách xử lý các yêu cầu không hợp lệ
JSON_EXTRACT[json_expr, json_path]
16JSON_EXTRACT[json_expr, json_path]
65
JSON_EXTRACT[json_expr, json_path]
JSON_EXTRACT[json_expr, json_path]
17Sự miêu tả
Lấy một biểu thức JSON, trích xuất một số JSON và trả về giá trị đó dưới dạng SQL
JSON_EXTRACT[json_expr, json_path]
65. Nếu biểu thức là SQL JSON_EXTRACT[json_expr, json_path]
32, hàm trả về SQL JSON_EXTRACT[json_expr, json_path]
32. Nếu giá trị JSON được trích xuất không phải là một số, sẽ xảy ra lỗi
73. JSON. Ví dụJSON_EXTRACT[json_expr, json_path]
02JSON_EXTRACT[json_expr, json_path]
Hàm này hỗ trợ một đối số có tên bắt buộc tùy chọn có tên là
'{"class" : {"students" : [{"name" : "Jane"}]}}'
79 xác định điều gì sẽ xảy ra với một số không thể được biểu diễn dưới dạng FLOAT64 mà không làm mất độ chính xácĐối số này chấp nhận một trong hai giá trị phân biệt chữ hoa chữ thường
- 'chính xác'. Hàm không thành công nếu kết quả không thể được biểu diễn dưới dạng
65 mà không làm mất độ chính xácJSON_EXTRACT[json_expr, json_path]
- 'vòng'. Giá trị số được lưu trữ trong JSON sẽ được làm tròn thành
65. Nếu không thể làm tròn như vậy, chức năng không thành công. Đây là giá trị mặc định nếu đối số không được chỉ địnhJSON_EXTRACT[json_expr, json_path]
loại trả lại
JSON_EXTRACT[json_expr, json_path]
65ví dụ
JSON_EXTRACT[json_expr, json_path]
19_______0_______20JSON_EXTRACT[json_expr, json_path]
21JSON_EXTRACT[json_expr, json_path]
22Các ví dụ sau đây cho thấy cách xử lý các yêu cầu không hợp lệ
JSON_EXTRACT[json_expr, json_path]
23JSON_EXTRACT[json_expr, json_path]
67
JSON_EXTRACT[json_expr, json_path]
JSON_EXTRACT[json_expr, json_path]
24Sự miêu tả
Nhận một biểu thức JSON và trả về loại giá trị JSON ngoài cùng dưới dạng SQL
JSON_EXTRACT[json_expr, json_path]
29. Tên của các loại JSON này có thể được trả lại
45SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
46SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
47SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
48SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
49SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
72JSON_EXTRACT[json_expr, json_path]
Nếu biểu thức là SQL
JSON_EXTRACT[json_expr, json_path]
32, hàm trả về SQL JSON_EXTRACT[json_expr, json_path]
32. Nếu giá trị JSON được trích xuất không phải là loại JSON hợp lệ, sẽ xảy ra lỗi
73. JSON. Ví dụJSON_EXTRACT[json_expr, json_path]
02JSON_EXTRACT[json_expr, json_path]
loại trả lại
JSON_EXTRACT[json_expr, json_path]
29ví dụ
JSON_EXTRACT[json_expr, json_path]
26mã hóa JSON
Bảng sau đây bao gồm các mã hóa phổ biến được sử dụng khi giá trị SQL được mã hóa dưới dạng giá trị JSON bằng hàm
JSON_EXTRACT[json_expr, json_path]
57 hoặc JSON_EXTRACT[json_expr, json_path]
55Từ ví dụ SQL sang JSON NULLvô giá trị
đầu vào SQL.JSON_EXTRACT[json_expr, json_path]
32đầu ra JSON.
JSON_EXTRACT[json_expr, json_path]
72BOOLbooleanSQL đầu vào. '{"class" : {"students" : [{"name" : "Jane"}]}}'
94đầu ra JSON.
SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
14đầu vào SQL.
'{"class" : {"students" : [{"name" : "Jane"}]}}'
96đầu ra JSON.
SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
62INT64
[chỉ TO_JSON_STRING]
số hoặc chuỗi
Được mã hóa dưới dạng số khi giá trị nằm trong phạm vi [-253, 253], là phạm vi số nguyên có thể được biểu diễn không mất dữ liệu dưới dạng số dấu phẩy động có độ chính xác kép IEEE 754. Một giá trị bên ngoài phạm vi này được mã hóa thành một chuỗi
đầu vào SQL.SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
63đầu ra JSON.
SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
63đầu vào SQL.
SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
05đầu ra JSON.
SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
66INT64
[chỉ TO_JSON]
số hoặc chuỗi
Nếu đối số
'{"class" : {"students" : [{"name" : "Jane"}]}}'
93 là '{"class" : {"students" : [{"name" : "Jane"}]}}'
94 và giá trị nằm ngoài miền loại FLOAT64, thì giá trị được mã hóa dưới dạng chuỗi. Nếu giá trị không thể được lưu trữ trong JSON mà không làm mất độ chính xác, hàm sẽ không thành công. Mặt khác, giá trị được mã hóa dưới dạng sốNếu
'{"class" : {"students" : [{"name" : "Jane"}]}}'
93 không được sử dụng hoặc là '{"class" : {"students" : [{"name" : "Jane"}]}}'
96, các giá trị số bên ngoài miền loại `FLOAT64` không được mã hóa dưới dạng chuỗi mà được lưu trữ dưới dạng số JSON. Nếu một giá trị số không thể được lưu trữ trong JSON mà không làm mất độ chính xác, thì sẽ xảy ra lỗiđầu vào SQL. SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
63đầu ra JSON.
SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
63đầu vào SQL.
SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
05đầu ra JSON.
SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
05Đầu vào SQL với stringify_wide_numbers=>TRUE.
SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
63đầu ra JSON.
SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
63Đầu vào SQL với stringify_wide_numbers=>TRUE.
SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
05đầu ra JSON.
SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
66SỐ
SỐ LỚN
[chỉ TO_JSON_STRING]
số hoặc chuỗi
Được mã hóa dưới dạng số khi giá trị nằm trong phạm vi [-253, 253] và không có phần phân số. Một giá trị bên ngoài phạm vi này được mã hóa thành một chuỗi
đầu vào SQL.SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
79đầu ra JSON.
SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
79đầu vào SQL.
SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
81đầu ra JSON.
SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
81đầu vào SQL.
SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
05đầu ra JSON.
SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
66đầu vào SQL.
SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
85đầu ra JSON.
SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
86SỐ
SỐ LỚN
[chỉ TO_JSON]
số hoặc chuỗi
Nếu đối số
'{"class" : {"students" : [{"name" : "Jane"}]}}'
93 là '{"class" : {"students" : [{"name" : "Jane"}]}}'
94 và giá trị nằm ngoài miền loại FLOAT64, thì nó được mã hóa dưới dạng chuỗi. Mặt khác, nó được mã hóa dưới dạng sốđầu vào SQL. SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
79đầu ra JSON.
SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
79đầu vào SQL.
SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
81đầu ra JSON.
SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
81đầu vào SQL.
SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
05đầu ra JSON.
SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
05đầu vào SQL.
SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
85đầu ra JSON.
SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
85Đầu vào SQL với stringify_wide_numbers=>TRUE.
SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
05đầu ra JSON.
SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
66Đầu vào SQL với stringify_wide_numbers=>TRUE.
SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
85đầu ra JSON.
SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
85FLOAT64
số hoặc chuỗi
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
01 và JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
02 được mã hóa thành JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
03, JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
04 và JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
02. Mặt khác, giá trị này được mã hóa dưới dạng sốđầu vào SQL. JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
06đầu ra JSON.
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
07đầu vào SQL.
SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
05đầu ra JSON.
SELECT JSON_EXTRACT["null", "$"] -- Returns a SQL NULL
05đầu vào SQL.
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
10đầu ra JSON.
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
11đầu vào SQL.
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
12đầu ra JSON.
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
13đầu vào SQL.
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
14đầu ra JSON.
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
14CHUỖI
chuỗi
Được mã hóa dưới dạng chuỗi, thoát theo tiêu chuẩn JSON. Cụ thể,
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
16, JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
17 và các ký tự điều khiển từ JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
18 đến JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
19 được thoátđầu vào SQL. JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
20đầu ra JSON.
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
20đầu vào SQL.
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
22đầu ra JSON.
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
22BYTE
chuỗi
Sử dụng mã hóa dữ liệu RFC 4648 Base64
đầu vào SQL.JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
24đầu ra JSON.
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
25DATEstringSQL đầu vào.
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
26đầu ra JSON.
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
27DẤU THỜI GIAN
chuỗi
Được mã hóa thành ngày và giờ theo tiêu chuẩn ISO 8601, trong đó T phân tách ngày và giờ và Z [Zulu/UTC] đại diện cho múi giờ
đầu vào SQL.JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
28đầu ra JSON.
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
29NGÀY GIỜ
chuỗi
Được mã hóa thành ngày và giờ theo tiêu chuẩn ISO 8601, trong đó T phân tách ngày và giờ
đầu vào SQL.JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
30đầu ra JSON.
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
31THỜI GIAN
chuỗi
Được mã hóa theo thời gian ISO 8601
đầu vào SQL.JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
32đầu ra JSON.
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
33JSON
dữ liệu của JSON đầu vào
đầu vào SQL.JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
34đầu ra JSON.
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
35đầu vào SQL.
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
36đầu ra JSON.
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
36MẢNG
mảng
Có thể chứa 0 hoặc nhiều phần tử
đầu vào SQL.JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
38đầu ra JSON.
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
39đầu vào SQL.
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
36đầu ra JSON.
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
41CẤU TRÚC
mục tiêu
Đối tượng có thể chứa 0 hoặc nhiều cặp khóa/giá trị. Mỗi giá trị được định dạng theo loại của nó
Đối với
JSON_EXTRACT[json_expr, json_path]
55, một trường được bao gồm trong chuỗi đầu ra và bất kỳ trường trùng lặp nào của trường này đều bị bỏ qua. Đối với JSON_EXTRACT[json_expr, json_path]
57, một trường và bất kỳ bản sao nào của trường này được bao gồm trong chuỗi đầu raCác trường ẩn danh được biểu thị bằng
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
44Tên trường UTF-8 không hợp lệ có thể dẫn đến JSON không thể phân tích cú pháp. Các giá trị chuỗi được thoát theo tiêu chuẩn JSON. Cụ thể,
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
16, JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
17 và các ký tự điều khiển từ JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
18 đến JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
19 được thoátđầu vào SQL. JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
49đầu ra JSON.
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
50Định dạng đường dẫn JSON
Với định dạng JSONPath, bạn có thể xác định các giá trị bạn muốn lấy từ chuỗi có định dạng JSON. Định dạng JSONPath hỗ trợ các toán tử này
Toán tử Mô tảVí dụJSON_EXTRACT[json_expr, json_path]
97Đối tượng gốc hoặc phần tử. Định dạng JSONPath phải bắt đầu bằng toán tử này, dùng để chỉ cấp ngoài cùng của chuỗi có định dạng JSONChuỗi định dạng JSON
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
52đường dẫn JSON
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
53kết quả JSON
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
54JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
55Người điều hành con. Bạn có thể xác định các giá trị con bằng ký hiệu dấu chấmChuỗi định dạng JSON
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
52đường dẫn JSON
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
57kết quả JSON
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
58JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
59 Toán tử chỉ số. Nếu đối tượng JSON là một mảng, bạn có thể sử dụng dấu ngoặc để chỉ định chỉ mục mảngChuỗi định dạng JSON
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
52đường dẫn JSON
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
61kết quả JSON
JSON '{"class" : {"students" : [{"name" : "Jane"}]}}'
62Nếu một khóa trong hàm JSON chứa toán tử định dạng JSON, hãy tham khảo từng hàm JSON để biết cách thoát chúng
Một hàm JSON trả về
JSON_EXTRACT[json_expr, json_path]
32 nếu định dạng JSONPath không khớp với một giá trị trong chuỗi có định dạng JSON. Nếu giá trị được chọn cho một hàm vô hướng không phải là vô hướng, chẳng hạn như một đối tượng hoặc một mảng, hàm sẽ trả về JSON_EXTRACT[json_expr, json_path]
32. Nếu định dạng JSONPath không hợp lệ, sẽ xảy ra lỗi