Верхний ответ имеет неожиданное поведение, когда длина строки меньше ожидаемой, потому что передача отрицательных значений в ПРАВО обрезает первые символы вместо всей строки. Вместо этого имеет смысл использовать RIGHT(MyColumn, -5)
.
create temp table foo (foo) as values ('123456789'),('12345678'),('1234567'),('123456'),('12345'),('1234'),('123'),('12'),('1'), ('');
select foo, right(foo, length(foo) - 5), right(foo, -5) from foo;
foo len(foo) - 5 just -5
--------- ------------ -------
123456789 6789 6789
12345678 678 678
1234567 67 67
123456 6 6
12345
1234 234
123 3
12
1