我有1条记录value = ABC2015000001
。
如何选择该记录并仅显示000001
?
这意味着我希望从后面选择值6位数。
答案 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)
函数。