【问题标题】:Presto: Return another table or a dummy value/table if original query returns no rowsPresto:如果原始查询未返回任何行,则返回另一个表或虚拟值/表
【发布时间】:2021-05-19 18:34:46
【问题描述】:

我正在 Presto/Hive 上学习 SQL。我想问如果我的原始查询没有返回任何行,是否有任何方法可以返回另一个选择表?

类似--

如果(选择 ORIGINAL_QUERY 不返回任何行)则 (选择 ALTERNATE_QUERY)。

尝试:

我知道有一个叫做 IF EXISTS 的东西,但我似乎无法让它在 select 语句执行上工作? Presto 资源有限,因此我们将不胜感激!

这不是家庭作业。只是试图解决一些 PrestoSQL 挑战。

【问题讨论】:

    标签: sql hive presto trino


    【解决方案1】:

    您可以使用union all 和 CTE:

    with q1 as (
          <first query here>
         )
    select q1.*
    from q1
    union all
    select q2.*
    from q2
    where not exists (select 1 from q1);
    

    注意:这假设查询返回相同数量和类型的列。

    【讨论】:

      猜你喜欢
      • 2013-02-18
      • 1970-01-01
      • 2021-05-13
      • 2021-02-05
      • 1970-01-01
      • 2018-08-12
      • 1970-01-01
      • 1970-01-01
      • 2018-04-10
      相关资源
      最近更新 更多