题目链接:点击打开链接
题目大意:略。
解题思路:注意 2 种生成序列方法。
AC 代码
-- 解决方案(1)
WITH t1 as (
SELECT 1 as a
UNION ALL SELECT 2
UNION ALL SELECT 3
UNION ALL SELECT 4
UNION ALL SELECT 5
UNION ALL SELECT 6
UNION ALL SELECT 7
UNION ALL SELECT 8
UNION ALL SELECT 9
),
t2 as (
SELECT 0 as b
UNION ALL SELECT 1
UNION ALL SELECT 2
UNION ALL SELECT 3
UNION ALL SELECT 4
UNION ALL SELECT 5
UNION ALL SELECT 6
UNION ALL SELECT 7
UNION ALL SELECT 8
UNION ALL SELECT 9
),
t3 as (
SELECT 10*a + 1*b as NUMBERS FROM t1, t2
UNION ALL SELECT 100
UNION ALL SELECT a FROM t1
)
SELECT NUMBERS AS 'ids' FROM t3
WHERE NUMBERS < (SELECT MAX(customer_id) FROM Customers)
AND NUMBERS NOT IN (SELECT customer_id FROM Customers)
ORDER BY NUMBERS ASC
-- 解决方案(2)
WITH RECURSIVE t AS (SELECT 1 num
UNION ALL
SELECT num + 1 FROM t WHERE num < 100)
SELECT num ids
FROM t
WHERE num NOT IN (SELECT customer_id FROM Customers) AND num < (SELECT customer_id FROM Customers ORDER BY customer_id DESC LIMIT 1)