我有一列包含12位数字,但用户只希望生成10位数字。
我尝试了修剪,ltrim功能,但是没有任何效果。以下是我尝试过的查询。
ltrim('10', 'column_name')
ltrim('10', column_name)
ltrim(10, column_name)
例如,我有一列包含12位数字
100000000123
100000000456
100000000789
我想要的预期结果是
0000000123
0000000456
0000000789
答案 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)