我的公司最近转向了大查询,我现在遇到的一个问题是,标准sql中的大查询不能接受查询中的别名列。
因为我回来了 Unrecognized name: product_code at [3:5]
. 有人知道这个问题的解决方法吗?
select sales, t_001 as product_code
from "project_01.sales_001.trans_datamart"
where product_code = '001-40040-00'
我的公司最近转向了大查询,我现在遇到的一个问题是,标准sql中的大查询不能接受查询中的别名列。
因为我回来了 Unrecognized name: product_code at [3:5]
. 有人知道这个问题的解决方法吗?
select sales, t_001 as product_code
from "project_01.sales_001.trans_datamart"
where product_code = '001-40040-00'
2条答案
按热度按时间w8ntj3qf1#
根据文档,您不能引用
SELECT
把它列在清单上WHERE
条款。where子句根据bool_expression
.然而,有一种方法可以让你达到你想要的。语法如下:
因此,可以将别名用作
from
子句,使您可以使用刚才在where
条款。我还鼓励您查看这个链接,查看关于bigquery中别名的所有解释。
wfsdck302#
我不知道有哪种sql方言允许在
WHERE
条款。仅根据示例中的子句,sql引擎通常会对
FROM
子句,确定从哪些表中提取数据,然后计算WHERE
子句来筛选检索到的数据,然后SELECT
子句来确定要显示什么以及如何显示它。鉴于此,sql引擎在读取
WHERE
条款。因此,您可以选择使用
WHERE
子句,或者,正如gordon在注解中建议的那样,将别名放在子查询或cte中,该子查询或cte将作为FROM
条款。列名:
子查询: