【问题标题】:Teradata SQL - Create temporary tableTeradata SQL - 创建临时表
【发布时间】:2019-03-13 01:17:19
【问题描述】:

是否可以在select语句中创建临时表。

假设我想在 ACCOUNT_NO 列中包含值 (1,2,3,4,5) 的数据集。

SELECT ACCOUNT_NO FROM (1,2,3,4,5)
WHERE ACCOUNT_NO NOT IN (SELECT ACCOUNT_NO FROM OTHER_TABLE)

【问题讨论】:

    标签: sql teradata teradata-sql-assistant


    【解决方案1】:

    你想要 CTE 吗?

    WITH a as (
          SELECT a.*
          FROM ((SELECT 1 as ACCOUNT_NO) UNION ALL
                (SELECT 2 as ACCOUNT_NO) UNION ALL
                (SELECT 3 as ACCOUNT_NO) UNION ALL
                (SELECT 4 as ACCOUNT_NO) UNION ALL
                (SELECT 5 as ACCOUNT_NO)
               ) a
         )
    SELECT a.ACCOUNT_NO 
    FROM a
    WHERE a.ACCOUNT_NO NOT IN (SELECT ot.ACCOUNT_NO FROM OTHER_TABLE ot)
    

    【讨论】:

    • 我不知道什么是 CTE
    • @klippy 。 . .它是a 与with 一起引入的。
    • 公用表表达式,或 CTE,是一个临时命名的结果集(id est 你的临时表),例如,从 select 语句派生,并用“with $resulset as (... )" 表达式用于后续查询。在 TD 中非常有用且速度非常快。
    猜你喜欢
    • 2015-04-25
    • 2019-01-29
    • 1970-01-01
    • 2018-06-01
    • 2013-03-19
    • 1970-01-01
    • 2011-03-28
    • 2017-12-31
    • 2011-11-03
    相关资源
    最近更新 更多