如果结果为空,则ORDER BY WITH FILL不起作用:
SELECT val
FROM table
WHERE 1 != 1
ORDER BY val WITH FILL FROM 1 TO 5Ok.
0 rows in set. Elapsed: 0.173 sec.很可能是因为这里没有涉及到ORDER BY的执行。
有没有办法让它工作,或者唯一的变通方法是像described here一样使用UNION
发布于 2020-12-11 04:48:39
你可以两者兼而有之。Union all使用默认值,您可以在末尾和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 │
└────────┘https://stackoverflow.com/questions/65239201
复制相似问题