在Oracle中使用Substring和INSTR

时间:2012-01-20 05:14:29

标签: oracle select substring

我无法创建此选择查询:

当我查询时:

SELECT DISTINCT PRODUCT_ID FROM SYSADM.TABLE; 

我得到的输出为:

EMA12345

EMA4567844

EMA4545455

US12342

NA4545454

PRS767657

现在我想获取检索到的产品ID等数据:

12345

4567844

4545455

US12342

NA4545454

PRS767657

这意味着除了以EMA开头之外的每个产品ID都应该按原样出现,那些以EMA开头的产品应该没有EMA。

需要在另一个选择查询中附加此内容。不能使用程序。

3 个答案:

答案 0 :(得分:1)

使用REPLACE功能:

SELECT DISTINCT REPLACE(PRODUCT_ID, 'EMA') FROM SYSADM.TABLE

答案 1 :(得分:1)

SELECT DECODE( INSTR( product_id, 'EMA' ), 1, SUBSTR( product_id, 4 ), 
               product_id ) AS my_column
  FROM SYSADM.TABLE

基本上,如果product_id的前三个字符是" EMA"然后使用第4个字符到product_id的末尾,否则,使用整个product_id。

答案 2 :(得分:1)

您可以链接togethor替换语句,例如:

select replace( replace( replace( product_id, 'EMA' ), 'US' ), 'NA' ) from sysadm.table;

或者点击here中的其中一个替代方案。