sql - 在 oracle 的 BETWEEN 子句中运行一个查询多个范围
问题描述
我在 oracle 中使用以下 sql 查询来获取工作正常的范围内的行数
SELECT count(SERIALNR)
FROM my_tab
WHERE SERIALNR BETWEEN '93266070760000' AND '93266070809999';
但是如果我必须为多个范围运行一个查询,例如下面的全部在一个查询中,如何完成查询
93266070560000 93266070609999
93266070610000 93266070659999
93266070660000 93266070709999
93266070710000 93266070759999
93266070760000 93266070809999
注意:类型SERIALNR
是NUMBER
解决方案
您似乎需要UNION ALL
分别获取每个范围
SELECT 'Range 1' AS "Range", count (SERIALNR) AS "Count"
FROM tab
WHERE SERIALNR BETWEEN 93266070560000 AND 93266070809999
UNION ALL
SELECT 'Range 2', count (SERIALNR)
FROM tab
WHERE SERIALNR BETWEEN 93266070610000 AND 93266070659999
UNION ALL
SELECT 'Range 3', count (SERIALNR)
FROM tab
WHERE SERIALNR BETWEEN 93266070660000 AND 93266070709999
UNION ALL
SELECT 'Range 4', count (SERIALNR)
FROM tab
WHERE SERIALNR BETWEEN 93266070710000 AND 93266070759999
UNION ALL
SELECT 'Range 5', count (SERIALNR)
FROM tab
WHERE SERIALNR BETWEEN 93266070760000 AND 93266070809999
并且您不需要引用 ofSERIALNR
作为具有数字数据类型。
推荐阅读
- r - 在 Shiny 中使用 radioButtons 和 selectInput 选择变量/列的问题
- image - 有没有办法使用 imagemagick 或其他图形库根据另一个图像中的像素进行过滤和图像
- javascript - 在下拉选择中隐藏内容
- javascript - Angular JS显示/隐藏更改事件
- java - 如何删除消费者已经消费的数据?卡夫卡
- java - Dropwizard 项目的 Maven 执行程序无法正常工作
- java - INTELLIJ IDEA 错误:“无法启动 Git:/usr/bin/git 可能是 Git 可执行文件的路径无效。修复它。” 如何修复它?
- javascript - 如何使用 javascript 或 php 将 Unicode 转换为 Preeti (ASCII)?
- json - 如何在数据驱动测试的 JSON 请求中添加断言。我正在使用 SOAP UI 免费版
- spring - 无法将数据更新到数据库:org.hibernate.hql.internal.QueryExecutionRequestException:不支持 DML 操作