PadLeft in SQL Server

L'istruzione PadLeft non esiste su SQL Server, quindi? la creiamo noi!.

il
Software architect e imprenditore digitale, Fondatore di IProgrammatori

Nella maggior parte dei linguaggi di programmazione sono presenti le funzioni PadLeft e PadRight, molto utili quando si devono generare stringhe di lunghezza fissa con i valori allineati a destra o sinistra e con i bytes restanti riempiti con un carattere di default.

Per capire di cosa sto parlando si pensi di voler formattare i valori: 12, 34 e 123 utilizzando una stringa di 5 caratteri.
I valori che vogliamo ottenere sono quindi: 00012, 00034, 00123

Mentre nella maggior parte dei linguaggi queste funzioni sono presenti, su T-SQL di SQL Server non esistono quindi dobbiamo ingegnarci.

La mia soluzione è una funzione che chiamerò PadLeft e che, una volta eseguita sarà aggiunta alle Scalar-valued Functions del nostro database SQL Server.

Funzione PadLeft

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =======================================================
-- Author:        Luigi Cristaldi di www.iprogrammatori.it
-- Description:    Funzione PadLeft
-- =======================================================
CREATE FUNCTION [dbo].[PadLeft]
(
    @text varchar(max),
    @paddingChar char(1),
    @stringLenght int
)
RETURNS varchar(max)
AS
BEGIN

declare @returnValue varchar(max)

SELECT @returnValue = ISNULL(REPLICATE(@paddingChar, @stringLenght - len(ISNULL(@text ,0))), '') + @text

RETURN @returnValue

END
GO


Esempi di utilizzo


Query SQL: select dbo.PadLeft(12,0,5)
Risultato: 00012

Query SQL: select dbo.PadLeft('B1',0,6)
Risultato: 00000B1