我正在工作中构建动态 sql 生成器,并且在联合查询方面遇到困难。
当我运行以下查询时:
SELECT NULL AS field;
列类型是BOOL
默认情况下,它可以用于与整数类型列的联合,如下所示:
SELECT field
FROM
(SELECT 21 AS field),
(SELECT NULL AS field)
这将返回成功的结果。
但是当我在一个子查询上运行类似的字符串类型查询时,它失败了
这是查询失败的原因无法联合表:不兼容的类型。 “字段”:STRING “字段”:BOOL:
SELECT field
FROM
(SELECT 'hello' AS field),
(SELECT NULL AS field)
推断类型和强制转换 null 值的最佳方法是什么。我的 sql 生成器应该在联合上使用多种数据类型,并且我认为 null 可以与所有类型一起使用。如果 null 不能与字符串和其他一些类型一起使用,是否有任何“超级”类型可以用来替换 null 字段?
BigQuery 分配NULL
值是一个类型,默认情况下是一个整数。获取一个字符串NULL
, 转变:
cast(null as string)
我不知道生成器是如何工作的,但您也许可以安排一个引用正确转换的值的查询:
with params as (
select cast(null as string) as null_str
)
select null_str
from params cross join
. . .
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)