我在oracle中使用下面的sql查询来获得一个范围内的行数
SELECT count(SERIALNR)
FROM my_tab
WHERE SERIALNR BETWEEN '93266070760000' AND '93266070809999';
但是,如果我必须对多个范围运行一个查询(如下面的all-in-one查询),该如何执行查询呢
93266070560000 93266070609999
93266070610000 93266070659999
93266070660000 93266070709999
93266070710000 93266070759999
93266070760000 93266070809999
注:类型 SERIALNR
是 NUMBER
5条答案
按热度按时间gcuhipw91#
你好像需要
UNION ALL
分别获取每个范围你不需要引用
SERIALNR
具有数字数据类型。5n0oy7gb2#
多个或多个条件呢-
nnt7mjpx3#
你有用处
OR
条款,如果将这些值存储在任何其他表中,会更方便
idv4meu84#
我想你需要在每个语句之间使用大括号
OR
就像下面一样您可以查看有关逻辑条件的文档
g52tjvyc5#
如果需要列中的计数,则需要条件聚合:
或为
UNION ALL
,如果要按行计数: