sql - 在 SQL 中检查数据序列
问题描述
我在列中有每周数据。我需要排除连续四个星期有空值的记录。
临时ID | 第 1 周 | 第 2 周 | 第 3 周 | 第 4 周 | 第 5 周 | 第六周 | 第 7 周 |
---|---|---|---|---|---|---|---|
123 | 1 | 无效的 | 无效的 | 无效的 | 无效的 | 4 | 4 |
234 | 3 | 5 | 5 | 6 | 无效的 | 4 | 4 |
333 | 4 | 无效的 | 4 | 8 | 无效的 | 4 | 4 |
对于这个例子,我需要排除 temp id 123
。其余需要包括在内。基本上排除列中有四个连续空记录的记录。
我如何查看我在此处描述的顺序?
解决方案
您可以在where
使用函数包装的条件中重复所有可能的序列coalesce
:coalesce
返回第一个非空值,所以如果它返回空值,那么所有值都是空值。
select *
from yourtable
where coalesce(week1, week2, week3, week4) is null
or coalesce(week2, week3, week4, week5) is null
or coalesce(week3, week4, week5 week6) is null
or coalesce(week4, week5 week6 week7) is null
推荐阅读
- c# - “英语”语言中单词的屈折词
- swift - 在集合视图中从服务器加载图像
- python - Python 3 逻辑非返回 True 作为 True
- java - 使用java从字符串中提取两个数字
- wordpress - Avada 在菜单项之间添加空格
- c++ - 我如何测试该代码没有调用 exit()
- java - Spring Async,如何在异步任务执行器中启用请求范围
- c - 为什么我使用以下代码从 valgrind 获得“无效读取”和“无效写入”?
- javascript - 带有猫鼬的数组上的枚举
- javascript - 如何将可变数量的数据集推送到图表数据,没有_observer“魔术”_(使用vuecharts.js)?