SmartQuery /ВОПРОС → ПРИМЕР → ПОНЯТНЫЙ ОТВЕТ
Базы данных

RIGHT в SQL: взять символы с конца строки

RIGHT(text, n) возвращает последние n символов строки. Синтаксис ниже показан для PostgreSQL; в других СУБД детали отрицательной длины и преобразования типов могут отличаться.

Базовые примеры

SELECT RIGHT('Hello World', 5);   -- World
SELECT RIGHT('1234567890', 3);    -- 890
SELECT RIGHT('SQL is awesome', 7); -- awesome
SELECT CONCAT('User: ', RIGHT('John Doe', 3)); -- User: Doe

Во втором примере аргумент — текст, а не число. Храните идентификаторы с ведущими нулями в текстовом поле, если нули имеют смысл.

Пустые и короткие строки

SELECT RIGHT('abc', 10); -- abc
SELECT RIGHT('abc', 0);  -- пустая строка
SELECT RIGHT('abc', -1); -- bc в PostgreSQL

В PostgreSQL отрицательное n означает исключить первые |n| символов. Это особенность данной СУБД: не переносите такой запрос в другой движок без проверки его документации.

Символы и байты

Функция работает с символами текста, а не с произвольным срезом байтов файла. Она не выделяет слово по разделителю и не гарантирует корректную обработку составного визуального символа. Для разбиения имени, пути или номера сначала определите правила исходного формата.

Документация