Дополнение строки слева заданными символами.
::=
::=
::=
В качестве <строки>
можно использовать выражения типа CHAR
, VARCHAR
, NCHAR
, NCHAR VARYING
.
<Новая длина>
должна быть беззнаковым <числовым литералом>
.
Если <новая длина>
больше исходной длины <строки>
, то <строка>
расширяется слева <дополняемыми символами>
до <новой длины> <строки>
(возможно, с повторением <дополняемых символов>
).
select lpad('12345',10, '**'); | *****12345 |
Если тип данных <строки> CHAR
, то концевые пробелы справа удаляются.
Если <дополняемые символы>
не указаны, по умолчанию <строка>
дополняется пробелами.
Если значение <новая длина>
меньше исходной длины <строки>
, то исходная <строка>
усекается до заданной <новой длины>
справа.
select lpad('12345',3, '**'); | 123 |
Если суммарная длина аргумента <дополняемые символы>
и исходной длины <строки>
больше, чем указанная <новая длина>
, <строка>
дополняется только частью аргумента <дополняемые символы>
. В этом случае аргумент <дополняемые символы>
усекается справа.
select lpad('12345',10,'abcdefgh'); | abcde12345 |
Все аргументы функции могут быть заданы <SQL-параметром>
, который должен содержать
спецификацию типа данных параметра.
select lpad(? (char(20)), ? (int), ? (char(10))); Тестовая строка 30 12345678 |12345678 12345Тестовая строка|
<Строка>
, дополненная слева указанными последовательностями символов. Длина <строки>
– максимум из исходной длины <строки>
и <длины>
.
Тип возвращаемого значения совпадает с типом аргумента.
Если аргумент NULL, результат NULL.
select substr(firstnam,1,1)|| '.' ||name, case length(ltrim(to_char(salary))) when 4 then lpad(ltrim(to_char(salary)),5, '$') else lpad(ltrim(to_char(salary)),6, '$')end from person; | J. COLVILLE | $3010 | | G. POORE | $8000 | | J. RAEBIGER | $5100 | | V. PARK | $3300 | | L. MARKUSH | $8800 | | F. VAN DUYN | $5100 | | M. WORLTON | $2700 | | S. MILLS | $3300 | | C. WELLS | $16200 | | J. FARRIS | $9300 | | L. STANWOOD | $4200 | | E. WOOLSEY | $10800 | …
select lpad(' '||to_char(sysdate,'dd.mm.yyyy TIME: hh:mi'),36,upper('Current date:')) from person where personid=2; |CURRENT DATE: 18.09.1998 TIME: 17:05| select rpad(c,10,substr(vc,1,3)) from tst;