首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

问2个oracle小疑点

2012-12-16 
问2个oracle小问题1 怎么截取这个字符/前的字母B258/10B1/89我希望得到B258 B1 2 有这么一排数据titlecall

问2个oracle小问题
1 怎么截取这个字符/前的字母
B258/10
B1/89
我希望得到B258 B1
 
2 有这么一排数据
title   callno   bookrecno
论语B222/3
论语B222/3
论语B222/3
孙子兵法B222/4
孙子兵法B222/4
孙子兵法B222/4
百家姓B222/5
百家姓B222/5
百家姓B222/5
大学中庸B222/6
大学中庸B222/6
大学中庸B222/6

想更新右边1行数据 按照s_order排序

得到结果:
title   callno   bookrecno
论语B222/31
论语B222/31
论语B222/31
孙子兵法B222/42
孙子兵法B222/42
孙子兵法B222/42
百家姓B222/53
百家姓B222/53
百家姓B222/53
大学中庸B222/64
大学中庸B222/64
大学中庸B222/64

[最优解释]
1

select substr('B258/10',1,instr('B258/10','/')-1)
[其他解释]
' '
[其他解释]
substr('B1/89',1,instr('B1/89','/')-1) from dual;

2

[其他解释]
2 有意义么?不知道你想干啥
[其他解释]
引用:
2 有意义么?不知道你想干啥

因为数据量很大
我想根据num类型来update
用varchar更新很慢
而且是title那么多字符 就更慢了

热点排行