【发布时间】:2023-02-21 23:20:53
【问题描述】:
我正在尝试在 Snowflake 中创建一个视图,并且在该视图的 dll 中我正在尝试创建一个临时表,因为我需要先过滤一下数据以使其按预期工作(我正在从 Oracle SQL 迁移)。
With DT1 as (select * from CPDD.DRRAW.EXTABLE1
limit 100);
Create or replace view CPDD.DRRAW.TEST11 as
(select * from DT1
limit 10)
我似乎无法将临时表用于实际工作,因为我不断收到“意外创建”错误。甚至可以在表/视图 DLL 中有一个临时表吗?
最终,我需要这样的东西的原因是因为在 Oracle SQL 中,我在 select 语句中有一个 NVL 部分,当迁移到 Snowflake 时,我收到“不支持的子查询”错误。
Select MAINTBL.ATT1, MAINTBL.ATTR2,
NVL (
(SELECT cosa.av1
FROM CPDD.DRRAW.ATRVL1 cosa
WHERE cosa.ATT_NM = 'MYDE'
AND cosa.OBJ_NM = OPN.ON),
(SELECT csoa.av1
FROM CPDD.DRRAW.ATRVL1 cosa
WHERE cosa.ATT_NM = 'MYDE'
AND cosa.OBJ_NM = 'DEFLT'))
MYDE
FROM CPDD.DRRAW.MAINTBL
【问题讨论】:
-
您需要将 CTE 放在 CREATE 语句中
标签: sql oracle snowflake-cloud-data-platform