sql - 如何使用 SQL 列出缺失的数值
问题描述
我正在尝试找出我正在开发的 API 的 SQL 请求。
所以我们有这个“桨”表,用户在其中注册,api 必须为桨提供一个可能的数字(只是一个函数 ID)。考虑到用户可以指定自己的桨号,我需要创建一个请求来获取每个缺失值。
我已经有一个 sql 请求:
select MIN(p.number)+1 FROM Paddle p WHERE not exists(
SELECT pa.number
FROM Paddle pa
WHERE pa.channel = 'ABSENTEE'
AND pa.sale_id = 3
AND p.number + 1 = pa.number) AND p.channel = 'ABSENTEE' AND p.sale_id = 3);
但它无法检测到何时没有桨号 1。
channel 和 sale_id 用于限制数字(我可以有两个桨,1 为数字,但不能用于相同的销售和渠道)
所以我想在请求中添加一部分,如果没有第一号桨,则将数字添加到子请求的结果集中。
感谢您的回复!
解决方案
我会尝试这样的事情:
select pid from
(
select 1 as pid
union all
select p.number+1 from Paddle
) as q
where
pid not in (select p.number from Paddle)
所以,在子查询中q
,我得到所有可能为空的 ID,然后过滤掉使用过的 ID
推荐阅读
- docker - Jenkins Job 如何将 docker 映像提升到下一个环境
- python - 如何用 Beautifulsoup 处理嵌套的 html 表?
- css - 如何覆盖背景图像上的导航栏?
- c# - EF 与数据库上的字段失去连接
- asp.net - 为什么我在尝试通过 HTTPS 访问 apple-touch-icon.png 时收到错误 403,但在浏览器中进行测试时会出现 200?
- node.js - 如何知道客户端在我的 Web 应用程序中发出的请求数
- python - 在特定字符后提取浮点数
- swift - 如何使用 Vapor 3 / PostgresSQL 一次“更新”多条记录
- google-cloud-dataflow - Apache Beam/Google 数据流使用下游聚合丰富上游记录
- javascript - React - 仅基于状态和第一个 onClick 事件触发回调