ORDER BY WITH FILL 空结果
ORDER BY WITH FILL on an empty result
如果结果为空,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
没有参与这里的执行。
有没有办法解决问题,或者唯一的解决方法是像 一样使用 UNION
?
您可以将两者混合使用。 Union all with a default value you can filter at the end and the FILL
clause:
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 │
└────────┘
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
没有参与这里的执行。
有没有办法解决问题,或者唯一的解决方法是像 UNION
?
您可以将两者混合使用。 Union all with a default value you can filter at the end and the FILL
clause:
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 │
└────────┘