-
您可以使用 case when 语句来确定数字的范围。
例如,student 表中提供以下数据:
要求查出每个人的分数等级,90-100分为优秀,80-89分为良好,60-79分为及格,60分以下为不及格。 声明是:
select name,score,case when score between 90 and 100 then '非常好'
when score between 80 and 89 then '好'
when score between 60 and 79 then '通过'
when score <60 then '失败'从学生结束;
执行结果如下:
-
选择成绩,得分来自 (
选择 Grade, Score from Table 其中 Score <= Incoming Number Order by Score Desc) 其中 rownum=1
-
1. 创建表 test isnum(id number, value varchar2(20));
2. 在测试中插入 isnum 值(1,'a');
insert into test_isnum values(2,329);
insert into test_isnum values(4,'15');
insert into test_isnum values(6,'2c');
commit;
3. 查询表中所有记录,选择t*,rowid from test isnum t,4、编写SQL,判断value字段,将内容记录为数字,选择t。*,case
when not regexp_like(value, '\d') then
是的'else
不'end as "不管是不是数字"
from test_isnum t;
-
1.这个问题在 ITPUB 中已经讨论了很长时间,您搜索它。
2.在不使用存储过程的情况下,oracle 没有像 isnumber() 这样的函数,所以至少你必须编写一个像 isnumber() 这样的函数,它是一个存储过程。
3.在此函数中,通过使用 to number() 并捕获异常来确定它是否为数字。
-
要先创建函数,请执行以下操作:
create or replace function isnumber(p_column in varchar2) return number
isl_t number;
beginl_t := to_number(p_column) ;
return 1;
exception when others thenreturn 0;
end;test,如果返回 0,则表示它不是数字,如果返回值为 1,则表示它是数字。
select isnumber('100') from dual;
select isnumber('-100') from dual;
select isnumber('') from dual;
select isnumber('a123') from dual;
对于重要的生产业务,建议开启归档拆分模式,通过**日志的归档,可以在数据丢失时恢复代码数据,部分操作只能在归档模式下实现,分析日志的内容可以被蒙蔽。 >>>More