redshift如果tablea包含数据,则截断tableb并将tablea插入tableb,否则不执行任何操作

o2g1uqev  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(311)

我试图创建一个红移查询,但我正在努力创建正确的逻辑或让它运行句号。
我有两张table TableA 以及 TableB .
如果 TableA 包含数据,然后擦除 TableB 并从 TableA .
伪:

CASE WHEN
(SELECT COUNT(*) FROM TABLEA) > 0
     THEN TRUNCATE TABLEB AND INSERT INTO TABLEB (SELECT * FROM TABLEA)
     ELSE DO NOTHING 
END

显然这行不通,所以我需要用一个 IF 声明?:

IF EXISTS (SELECT * FROM TABLEA)
    BEGIN
        TRUNCATE TABLE TABLEB
        INSERT INTO TABLEB (SELECT * FROM TABLEA)
    END
ELSE
    BEGIN
        PRINT 'nothing in table'
    END
rbpvctlc

rbpvctlc1#

您需要使用存储过程。不能在普通sql查询中的其他查询中嵌套具有副作用的查询。

相关问题