I can't see a function like LPAD
in SQL Server 2008. For example how can I convert the following queries into T-SQL?
select LPAD(MY_VALUE,2,' ')) VALUE FROM MY_TABLE
The LPAD() function left-pads a string with another string, to a certain length.
LPAD is used to pad the left side of a base string with a given pad string. It will repeat the pad string until the given length is met. RPAD is similar but adds the padding on the right side of the base string.
Basically pad it with the number of characters you are intending to select and then right the string.
Select right(replicate(' ',2) + YourFieldValue,2) from YourTable
You can use the space function instead of replicate, space(number_of_spaces), replicate just allows you to pad with alternative characters.
Manual calculations can be annoying to apply inside queries. Luckily, we can create a function:
CREATE FUNCTION LPAD ( @string VARCHAR(MAX), -- Initial string @length INT, -- Size of final string @pad CHAR -- Pad character ) RETURNS VARCHAR(MAX) AS BEGIN RETURN REPLICATE(@pad, @length - LEN(@string)) + @string; END GO
(Please replace VARCHAR
with NVARCHAR
to your liking, or use an alternative algorithm.)
Then:
SELECT dbo.LPAD(MY_VALUE, 2, ' ') VALUE FROM MY_TABLE
Should work since SQL Server 2005.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With