簡體   English   中英

Bigquery中的JSON比較函數

[英]JSON comparison function in Bigquery

有什么方法可以在 BigQuery 中擁有有效的JSON對象比較功能。 以下是我希望看到的一些輸入/輸出示例:

# all should result in TRUE
SELECT JSON '1' < JSON '2'
SELECT JSON '9' < JSON '10'
SELECT JSON '"a"' < '"b"'
SELECT JSON '"D"' < JSON '"a"'
SELECT JSON 'false' < JSON 'true'

也許它需要一個 JS udf 或其他東西,因為它涉及類型插值……也許是遞歸的,但看看這里有什么可能。

提供的示例未顯示任何嵌套結構。 因此,解決方案將不包括任何遞歸。 JSON 必須以不同的格式進行解釋:數字和字符串。 這不能在 SQL 中完成,需要 JavaScript UDF。

create temp function json_is_smaller(a json, b json)
returns bool
language js as
"""
return a<b
""";
with tbl as (SELECT JSON '1' a , JSON '2' b
UNION ALL SELECT JSON '9' , JSON '10'
UNION ALL SELECT JSON '"a"' , JSON '"b"'
UNION ALL SELECT JSON '"D"' , JSON '"a"'
UNION ALL SELECT JSON 'false' , JSON 'true')

select *,  json_is_smaller(a,b)
from tbl

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM