【问题标题】:ORDER BY WITH FILL on an empty resultORDER BY WITH FILL 空结果
【发布时间】:2021-03-22 03:38:53
【问题描述】:

如果结果为空,ORDER BY WITH FILL 不起作用:

SELECT val
FROM table
WHERE 1 != 1
ORDER BY val WITH FILL FROM 1 TO 5
Ok.
0 rows in set. Elapsed: 0.173 sec.

很可能是因为ORDER BY 没有参与这里的执行。

有没有办法让工作,或者唯一的解决方法是使用UNIONdescribed here

【问题讨论】:

    标签: clickhouse


    【解决方案1】:

    您可以将两者混合使用。使用默认值联合所有,您可以在末尾和 FILL 子句进行过滤:

    SELECT * FROM (
      SELECT *
      FROM
      (
        SELECT 0 AS number
        UNION ALL
        SELECT number
        FROM numbers(10)
        WHERE 1 != 1
      )
      ORDER BY number ASC WITH FILL FROM 1 TO 5
    )
    WHERE number != 0
    
    ┌─number─┐
    │      1 │
    │      2 │
    │      3 │
    │      4 │
    └────────┘
    

    【讨论】:

      猜你喜欢
      • 2021-05-11
      • 1970-01-01
      • 2013-10-11
      • 2013-11-19
      • 2015-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多