oracle 怎么确定一个字符串中数字的个数?
如一个字符串:ABCE34ER9,
用sql语句,我怎么去知道有多少个数字呢?(上面例子3个)
非常感谢!
SQL code:
select count(1)
from
(
select ascii(substr('ABCE34ER9',rownum,1)) a
from dual connect by rownum<=length('ABCE34ER9')
) where a between 48 and 57
--result:
3
SQL code:
考虑通用,写了一函数:
--FUNCTION:
/*
功能:判断字符串中数字个数
作者:cosio
时间: 2009-10-15
*/
CREATE OR REPLACE FUNCTION fun_test(a IN varchar)
RETURN NUMBER
IS
b NUMBER;
BEGIN
SELECT COUNT(*) INTO b
from
(SELECT ascii(substr(a,rownum,1)) a
from dual CONNECT BY rownum<=length(a))
WHERE a BETWEEN 48 AND 57;
RETURN(b);
End;
--TEST DATA:
with temp
as
(
select '1231aasb' t from dual
union all
select 'dasf131412341' from dual
)
select fun_test(t) from temp;
--RESULT:
4
9
在函数里写个for循环,遍历每个字符,跟'0'和'1'比较,效率会更高吧
说错了,是'0'和'9'
SQL code:
select length('luoyoumou11luo2093lllieoje') "字串长度",
length(translate('luoyoumou11luo2093lllieoje','0123456789','
相关问答:
比如我有testA、testB、testC三个表
我现在需要写一个批处理或者脚本给别人 作用就是执行这段语句可以清除这三个表里面的数据 就是一个初始化的意思
哪位高人帮助下啊 一个数据库小白在此求救啦
SQL code:
......
with adod_dict do
begin
close;
commandtext:='select bgqxcode,count(*) wjsl from wscl_wsda_file where wjnd=:tnd group by bgqxcode'; ......
安装11g的06,打补丁升到07,从ODBC里面看,有
Oracle in OraOdac11g_home1 11.01.00.07
从注册表看HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\下面的Driver和Setup都是我的安装路径
"D:\\app\\Ad ......
在lomboz eclipse中的window->show view->others->中的怎样加入connectivity中的data source中连接oracle时只有8,9,10这三个版本,怎样才能连接oracle11这个版本呢??????????????
附图片 ......
我用这个工具,
创建了一个表
添加了一条记录
然后查询却查询不到;
而且去数据库中查找也找不到这个表;
以为未创建成功.
重新创建表却提示名称已存在.
请教各位大侠.这个是怎么回事啊
小弟初 ......