[英]How to update statement in snowflake using with CTE (WITH CTE- common_table_expression)?
我正在嘗試更新最終表中的一個字段。 我這里有邏輯。 當它遇到某些情況時,我必須更新 last_version_flag。 如何在雪花中使用WITH CTE概念。 先感謝您。
update dw.tb_fidctp_order
set last_version_flag = 'N'
from dw.tb_fidctp_order
where (with my_cte as (
select order_id, MAX(cast(VERSION as NUMBER(18,0))) as max_version
from stg.tb_fidctp_order_input
group by order_id))
DW.tb_fidctp_order.order_id = my_cte.order_id and DW.tb_fidctp_order.version < my_cte.max_version
正確的語法是UPDATE target_table SET col_name = value FROM additional_tables WHERE condition :
CREATE TABLE tb_fidctp_order(version INT, order_id INT, last_version_flag TEXT);
CREATE TABLE tb_fidctp_order_input(version INT,order_id INT, last_version_flag TEXT);
update tb_fidctp_order
set last_version_flag = 'N'
from (
WITH cte AS (
select order_id, MAX(cast(VERSION as NUMBER(18,0))) as max_version
from tb_fidctp_order_input
group by order_id
)
SELECT * FROM cte
) AS my_cte
where tb_fidctp_order.order_id = my_cte.order_id
and tb_fidctp_order.version < my_cte.max_version;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.