PadLeft in SQL Server

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

il
Informatico, 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