表 A
列 code score
1 20
2 30
3 50
4 80表 B
列 lv maxs mins
A 0 30
B 31 50
C 51 100结果
code score lv
1 20 A
2 30 A
3 50 B
4 80 CSQL应该怎么写?数据量大,要动态的,不固定等级。请指点。
列 code score
1 20
2 30
3 50
4 80表 B
列 lv maxs mins
A 0 30
B 31 50
C 51 100结果
code score lv
1 20 A
2 30 A
3 50 B
4 80 CSQL应该怎么写?数据量大,要动态的,不固定等级。请指点。
解决方案 »
- 64位suse上安装oracle11g-64时提示:[INS-32033]central inventory location was not writable
- 如何拆分字符串
- oracle如何对经常读写的表进行优化?
- 小妹请教:怎样在java中实现dos命令中的exp调用(数据库备份命令),急!!!
- 求一SQL语句
- 装了oracle10g后, 找不到Enterprise Manager Console了,是没安装完全还是其它什么问题?
- 急等答案- 表空间文件被删除,现不能启动
- 急!!!怎么写这个触发器?-自动删除表中90天以后的信息……来者有份
- 初学问题:这个触发器如何写?
- Oracle管理与优化书籍推荐
- 对数据中的某张表进行遍历
- 数据库表消失了
1 with tba as(
2 select 1 code,20 score from dual
3 union all
4 select 2,30 from dual
5 union all
6 select 3,50 from dual
7 union all
8 select 4,80 from dual),
9 tbb as(
10 select 'A' lv,0 mins,30 maxs from dual
11 union all
12 select 'B',31,50 from dual
13 union all
14 select 'C',51,100 from dual)
15 select tba.*,tbb.lv
16 from tba,tbb
17* where tba.score between tbb.mins and tbb.maxs
SQL> / CODE SCORE L
---------- ---------- -
1 20 A
2 30 A
3 50 B
4 80 C
select a.*,b.lv from a,b where a.score between b.mins and b.maxs;
至于楼主你说的要动态的,不固定等级,能否说详细点?
select 1 code,20 score from dual
union all
select 2,30 from dual
union all
select 3,50 from dual
union all
select 4,80 from dual),
tbb as(--这个就是增加级别的维度啊对结果没什么影响的
select 'A' lv,0 mins,30 maxs from dual
union all
select 'B',31,50 from dual
union all
select 'C',51,70 from dual
union all
select 'D',71,87 from dual
union all
select 'E',88,100 from dual)
select tba.*,tbb.lv
from tba,tbb
where tba.score between tbb.mins and tbb.maxs CODE SCORE L
---------- ---------- -
4 80 D
3 50 B
2 30 A
1 20 A