Доступные версии документации

Правостороннее удаление символов

Функция

Удаление заданных символов из строки справа.

Спецификация
 
<синтаксис>::=
Общие правила
  1. Из <строки> удаляются справа символы, указанные в <подстроке>.

  2. Если <подстрока> не указана, по умолчанию удаляются пробелы.

  3. Если <строка> имеет тип данных CHAR(1), VARCHAR(1), и удаляется содержащийся в ней символ, то <строка> не становится пустой: удаляемый символ заменяется пробелом, и длина строки остается равной 1. Таким образом, удаление пробела из поля типа CHAR(1), VARCHAR(1) c помощью функции RTRIM невозможно.

  4. Все аргументы функции могут быть заданы <SQL-параметром>, который должен содержать спецификацию типа данных параметра.

    select rtrim(? (char(20)), ? (char(10)));
    Тестовая строка 24
    24
    |Тестовая строка     |

Возвращаемое значение
  1. <Строка> с удаленными справа указанными символами.

  2. Тип возвращаемого значения совпадает с типом аргумента.

  3. Если аргумент NULL, результат NULL.

Пример
create or replace table tab1 (c1 char(10), c2 char(10), c3 char(10), c4 char);
insert into tab1 values ('  123     ',
'?123???','456123123', '%');

select c1 ||  '   *',length( c1 || '   *'),
rtrim(c1) || '*', length( rtrim(c1) || '*') from tab1
union
select c2 ||  '*' , length( c2 || '*'),
rtrim(c2, '?' ) ||  '*', length(rtrim(c2 , '?') || '*')
from tab1
union
select c3 || '*', length( c3 || '*'),
rtrim(c3, '123') || '*', length(rtrim(c3, '123') || '*')  from tab1
union
select c4 || '*', length(c4 || '*'),
rtrim(c4, '%') || '*', length(rtrim(c4, '%') || '*')  from tab1;
|  123   *   | 9  |  *123 | 6 |
| ?123???*   | 8  | ?123* | 5 |
| %*         | 2  | *     | 1 |
| 456123123* | 10 | 456*  | 4 |
Заметили ошибку?
Выделите текст и нажмите Ctrl + Enter