在Oracle SQL中删除2个字符

时间:2019-05-29 12:42:24

标签: sql oracle plsql

我有一列包含12位数字,但用户只希望生成10位数字。

我尝试了修剪,ltrim功能,但是没有任何效果。以下是我尝试过的查询。

ltrim('10', 'column_name')
ltrim('10', column_name)
ltrim(10, column_name)

例如,我有一列包含12位数字

100000000123
100000000456
100000000789

我想要的预期结果是

0000000123
0000000456
0000000789

2 个答案:

答案 0 :(得分:4)

要提取输入字符串的最后10个字符,而不考虑字符串的长度(因此,如果某些输入包含10个字符,12个和15个字符,此方法将起作用),可以在{ {1}}:

substr

例如:

substr(column_name, -10) 

请特别注意第三个示例。输入只有5位数字,因此显然您不能从中获得10位数字。结果为NULL(未定义)。

还请注意,如果您使用with my_table(column_name) as ( select '0123401234' from dual union all select '0001112223334' from dual union all select '12345' from dual union all select '012345012345' from dual ) select column_name, substr(column_name, -10) as substr from my_table; COLUMN_NAME SUBSTR ------------- ---------- 0123401234 0123401234 0001112223334 1112223334 12345 012345012345 2345012345 之类的东西,在这种情况下,您只会得到substr(column_name, 3);很可能不是期望的结果。

答案 1 :(得分:-1)

尝试使用SUBSTR(column_name, 2)