Teradata does not come with an LPAD() or RPAD() function. If you can create a UDF for them, that would be best, but if you can't, here are some workarounds.
RPAD a string with spaces
-- replace 10 in char(10) below with desired column length -- single ticks put around result to show spaces were actually added to right select 'abc' as "SampleString", '''' || cast(SampleString as char(10)) || '''' "rpad_spaces";
RPAD a string with any character
-- make string of characters (in this example '0000') to match desired length
-- leading space in column is preserved
select
' 1' AS "SampleString",
SampleString || Substring('0000' From 1 For Chars(SampleString)) AS "rpad_zero";
-- same as above, but using ANSI SUBSTR
select
' 1' AS "SampleString",
SampleString || SUBSTR('0000',Chars(SampleString)) AS "rpad_zero";
LPAD a string with any character
-- replace 0 with desired character
-- make string of characters (in this example '0000') to match desired length
-- leading space in column is preserved
select
' 1' AS "SampleString",
Substring('0000' From 1 For Chars(SampleString)) || SampleString "lpad_zero";
-- same as above, but using ANSI SUBSTR
SELECT
'19' as "SampleText",
SUBSTR('00000'||SampleText,CHARACTERS(SampleText)+1) "LPAD(SampleText,5,'0')";
-- Showing how trailing spaces from a CHAR column can be dropped
select
'0000123 ' as "SampleText",
CAST(CAST(SampleText AS integer FORMAT '-9(10)') AS CHAR(10)) "LPAD(SampleText,10,'0')";