读书人

问2个oracle小疑点

发布时间: 2012-12-16 12:02:32 作者: rapoo

问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那么多字符 就更慢了

读书人网 >oracle

热点推荐