0

(在这里提交以帮助可能遇到类似挑战的其他雪花用户......有兴趣看看除了蜜蜂已经提供的内容之外是否还有其他建议。)

为什么表别名不能用于子查询?

我正在使用示例表选择查询,但是当我编写表别名时它不起作用。

select * from SNOWFLAKE_SAMPLE_DATA.TPCDS_SF100TCL.STORE as t
where 
t.S_REC_START_DATE = (
          select max(i.S_REC_START_DATE) from t as i
              where i.S_REC_START_DATE < '2000-01-01'
        )

我收到一个 SQL 编译错误:Object 'T' does not exist.

不能使用表别名吗?

4

1 回答 1

0

(之前由雪花专业服务团队的终身成员 Mike Walton 提供)

你可以,但不是那样。您应该使用 CTE,而不是:

WITH t as (
  select * from SNOWFLAKE_SAMPLE_DATA.TPCDS_SF100TCL.STORE
)
select * FROM t
where t.S_REC_START_DATE = (
         select max(S_REC_START_DATE) as S_REC_START_DATE from t
              where S_REC_START_DATE < '2000-01-01'
        )

还有其他想法和/或建议吗?

于 2019-10-28T16:52:43.710 回答