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:
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.

