如何有效地使用Substr查询动态记录

时间:2013-10-22 17:50:18

标签: sql oracle substr

我的表INVENTORY

中有一个“INV_NM”列
1000--200
10000--2000
900--100
2000--2200
70000--2100
700--700
4000--4000
2000--2000
500--1000
8000--750
6000--2000
100--1000

DEPT--DIVISION

的同义词

我想在我的查询中仅将DEPT作为DEPT_NO添加到一列,DIVISION作为DIVISION_NO添加到另一列。

我可以使用substr(INV_NM,1,X)

X是我的困惑

请帮助我这方面

1 个答案:

答案 0 :(得分:1)

您可以使用substr()instr()函数的以下组合来获得所需的输出:

select substr(inv_nm, 1, instr(inv_nm, '-')-1)    as dept_no
     , substr(inv_nm, instr(inv_nm, '-', -1) + 1) as DIVISION_NO
  from inventory

结果:

DEPT_NO     DIVISION_NO
----------- -----------
1000        200         
10000       2000        
900         100         
2000        2200        
70000       2100        
700         700         
4000        4000        
2000        2000        
500         1000        
8000        750         
6000        2000        
100         1000        

12 rows selected 

SQLFiddle Demo