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.

select id, imie from pracownicy;

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:

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:

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.