2013-10-22 22 views
0

有一个“INV_NM”栏目下面我表库存如何查询有效地使用SUBSTR动态记录

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

你可以实现与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