如何在1列数据库表中选择一些字符串

时间:2015-08-18 08:35:42

标签: database oracle

我有1条记录value = ABC2015000001

如何选择该记录并仅显示000001

这意味着我希望从后面选择值6位数。

3 个答案:

答案 0 :(得分:1)

Substring可用于执行此操作;

<强>的Oracle

select SUBSTR('ABC2015000001', length('ABC2015000001') - 5, 6) from DUAL

sql server

select SUBSTRING('ABC2015000001', len('ABC2015000001') - 5, 6)
select right('ABC2015000001', 6)

<强> MySQL的

select SUBSTR('ABC2015000001', length('ABC2015000001') - 5, 6)

答案 1 :(得分:1)

Praveen的Oracle语法有效,但您可以稍微简单一点的方式完成,不需要length()调用或第二个substring-length参数。 substr()允许否定位置参数:

  
      
  • 如果position为0,则将其视为1。
  •   
  • 如果位置为正,则Oracle数据库从char的开头计算以查找第一个字符。
  •   
  • 如果position为负数,则Oracle从char结尾向后计数。
  •   
  • 如果省略substring_length,则Oracle将所有字符返回到char的末尾。如果substring_length小于1,则Oracle返回null。
  •   

组合最后两个点,你可以传递-6作为位置,表示你想从最后开始6个字符,并省略第二个参数,以便得到字符串的其余部分:

SQL> select substr('ABC2015000001', -6) from dual;

SUBSTR
------
000001

答案 2 :(得分:0)

您使用哪种数据库类型?

通常在几乎所有数据库中都有Substring(parameters)函数。