如何检查BigQuery表中JSON对象列是否存在空值
BigQuery JSON类型列筛选非空值的正确方法
你之前用SELECT column1 FROM EMP WHERE column1 != 'null'的写法无法正确筛选JSON类型列的非空值,原因是BigQuery中JSON类型的null和字符串'null'是完全不同的类型,直接用字符串比较不生效。
以下是两种正确的处理方式:
筛选列本身非SQL NULL且不是JSON null
使用JSON_TYPE函数判断JSON值的类型,结合SQL的IS NOT NULL排除空值:SELECT column1 FROM EMP WHERE column1 IS NOT NULL AND JSON_TYPE(column1) != 'NULL'筛选JSON字段中的非空值
如果要提取JSON结构内某个字段并筛选其非空值,用JSON_VALUE函数提取后判断:SELECT column1 FROM EMP WHERE JSON_VALUE(column1, '$.target_field') IS NOT NULL
JSON_TYPE函数会返回当前JSON值的类型(如'NULL'、'STRING'、'OBJECT'等),通过判断其不等于'NULL'可以精准排除JSON类型的空值;JSON_VALUE则用于提取JSON中的指定字段值,再通过IS NOT NULL筛选非空结果。
内容的提问来源于stack exchange,提问作者Kumar
相关产品推荐
相关产品推荐

