0
点赞
收藏
分享

微信扫一扫

LeetCode(数据库)- 找到遗失的ID


题目链接:​​点击打开链接​​

题目大意:略。

解题思路:注意 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)


举报

相关推荐

0 条评论