Funkcje LPAD i RPAD w MS SQL – uzupełnianie ciągiem znaków (dopełnienie z lewej i prawej strony)
W języku MS SQL
nie znajdziemy niestety funkcji LPAD
oraz RPAD
, za pomocą których moglibyśmy uzupełnić ciąg z lewej lub prawej strony o określony ciąg do określonej długości. Możemy jednak przy wykorzystaniu funkcji: replicate
, concat
, oraz left
/right
uzyskać ten sam wynik.
Przejdźmy zatem do przykładu. Wykorzystamy w nim znaną nam już tabelę pracownicy
, a konkretniej dwa jej pola: id
oraz imie
.
Chcemy dopełnić pole id
z lewej strony wartościami 0
tak aby długość ciągu wynosiła 10
znaków oraz
pole imie
wartościami xX
do długości ciągu 30
znaków.
W Oracle SQL
, PostreSQL
, mySQL
oraz InformixSQL
moglibyśmy zastosować funkcje LPAD
i RPAD
, a gotowe zapytanie wyglądało by następująco:
1 | select lpad(id, '10' , '0' ), rpad(imie, '30' , 'xX' ) from pracownicy; |
W MS SQL
dopełnienie z lewej i prawej strony uzyskamy stosując wspomniane wcześniej funkcje replicate
, concat
, oraz left
/right
:
1 2 3 | select right (concat(replicate( '0' ,10), id),10), left (concat(imie, replicate( 'xX' ,30)),30) from pracownicy; |
Wynik zapytania SQL:
W podanym przykładzie przy pomocy funkcji replicate
powieliliśmy ilość znaków w ciągu do interesującej nas długości, a następnie przy pomocy concat
połączyliśmy z wartością pola tabeli. Ostatecznie wykorzystaliśmy funkcje right
/left
do przycięcia połączonego ciągu do określonej długości.