SQL – Pad Left string with prefix
Questa fuzione è molto utile ad esempio per la protocollazione, sfruttando l’id del documento.
Quindi quando si deve mantenere fisso il numero di caratteri da mostrare, ma l’id ha un numero variabile di cifre.
Ad esempio ho documenti con id 9, 10, .. 99, 100, ma voglio mantenere la protocollazione come ‘0000000009’, ‘0000000010’, .., ‘0000000099’, ‘0000000100’, ossia mantenendo la stringa di output di 10 caratteri, con 10 un numero variabile.
Ecco la User Defined Function che potete utilizzare:
USE [Northwind] GO CREATE FUNCTION dbo.PadLeftWithPrefix ( @numero int, @totale_carat int, @charInput char, @prefisso varchar(15) ) RETURNS Nvarchar(50) AS BEGIN RETURN @prefisso + REPLICATE(@charInput, @totale_carat - LEN(CONVERT(varchar,@numero))) + CONVERT(varchar,@numero) END GO SELECT dbo.PadLeftWithPrefix(9, 10, '0', 'Prot.:') GO
Il risultato della SELECT nello snippet ritorna la stringa ‘Prot.:0000000009’,
dove
9 è l’id di esempio,
10 è il numero di caratteri del protocollo di output
‘0’ è il carattere da replicare
‘Prot.:’ è il prefisso da aggiungere all’output.
Download source Pad_Left_String_With_prefix.zip (399,00 bytes)
Lascia un commento