Örneğin bir değerin 8 karakter olması zorunluluğu varsa ve başına sabit karakterler eklemek istiyorsak, eldeki değerin önce uzunluğunu biliyor olmamız gerekiyor. Sonra bunu tamamlama yapma şekliyle dönüştürmemiz gerekiyor.
Örneğin;
Elimizdeki değer 1234 ise ve biz bunu aslında 00001234 olarak göstermek istiyorsak, önce SQL içinde aşağıdaki fonksiyonu oluşturmamız gerekiyor.
Kod: Tümünü seç
IF OBJECT_ID('Evn_PadLeft', 'FN') IS NULL
BEGIN
EXEC(
'CREATE FUNCTION [dbo].[Evn_PadLeft]
(
@EvnText NVARCHAR(MAX) ,
@EvnReplace NVARCHAR(MAX) ,
@EvnLen INT
)
RETURNS NVARCHAR(MAX)
AS
BEGIN
DECLARE @EvnInt NVARCHAR(MAX)
SELECT @EvnInt = ISNULL(LTRIM(RTRIM(@EvnText)) , '''')
RETURN RIGHT(REPLICATE(@EvnReplace,@EvnLen)+ @EvnInt, @EvnLen)
END'
)
END
Kod: Tümünü seç
SELECT dbo.Evn_Padleft('1234','0',8)
Kod: Tümünü seç
SELECT dbo.Evn_Padleft('elimizdeki değer','başa eklenecek karakter', toplam basamak sayısı)
Ya da;
Değerimiz 1234 ve biz bunu yasal mevzuattaki gibi 16 karakterli FAT2023000001234 e-Fatura numarası gibi oluşturacağız.
Kod: Tümünü seç
SELECT 'FAT'+CAST(YEAR(GETDATE())AS varchar(5))+dbo.Evn_Padleft('1234','0',9)