字段A444
555
硕士
aa求当字段A的内容是数字的时候并且当大于300的时候的所有行
555
硕士
aa求当字段A的内容是数字的时候并且当大于300的时候的所有行
解决方案 »
- 求一sql
- 为什么游标循环的时候结果会被覆盖
- 不小心误删除wmsys.wm_concat函数
- forall 批量insert update数据
- 求一个sql语句写法!!!
- 请问下面的pl/sql dev中的提示是什么意思?(在线等待)
- 简单的SQL语句(两个字段合并后显示)
- 在ORACLE中,如何倒出一个部的结构?
- java.sql.SQLException: ORA-24327: 在证明一个用户之前,需要明确的连接 - (icbc/********@@192.168.0.210:1521:icbc)++++++在线。。。
- oracle 学习 & 论坛
- 请问在Oracle中如何设置像SQL Server中插入一行字段值会自动加1的字段,谢谢
- 100分请教(解决了,再加100分)
(select case when translate(a,'a123456789','a') is not null then 0 else a end cola
from tablename)
where cola>300
(select case when translate(a,'a0123456789','a') is not null then 0 else to_number(a) end cola
from tablename)
where cola>300;orselect *
from tablename
where to_number(a)>300 and translate(a,'a0123456789','a') is null;
create or replace function GetNumber(para varchar2) return number is
begin
return to_number(para);
exception
when INVALID_NUMBER then
return -999999;
end;
这个函数判断一个字符串是不是数字,如果是则返回该值, 不是则返回-999999 (再小点也没关系,不要超过上限就行)然后SQL就简单啦~~
select * from talbe
where GetNumber(A)>300;
优点:可读性极高~
缺点:没啥缺点~ 就是要写个PL/SQL而已 :)
create or replace function GetNumber(para varchar2) return number is
begin
return to_number(para);
exception
when VALUE_ERROR then //把INVALID_NUMBER 改成 VALUE_ERROR
return -999999;
end;