从每个数据库值中删除最后两个字符

时间:2015-03-06 20:42:24

标签: sql oracle

我运行以下查询:

select * from my_temp_table 

获得此输出:

  

PNRP1-109 / RT
  PNRP1-200-16
  PNRP1-209 / PG
  013555366-IT

如何更改查询以从每个值中删除最后两个字符?

2 个答案:

答案 0 :(得分:3)

使用SUBSTR()功能。

SELECT SUBSTR(my_column, 1, LENGTH(my_column) - 2) FROM my_table;

答案 1 :(得分:0)

使用正则表达式的另一种方法:

select regexp_replace('PNRP1-109/RT', '^(.*).{2}$', '\1') from dual;

这将从正则表达式替换您的字符串与组1,其中组1(在parens内部)包括行开头之后的字符集,不包括行结束之前的2个字符。 / p>

虽然对你的例子不那么简单,但可能更强大。