Supplément 0 lorsque le chiffre est less 4

quand le chiffre est less 4, alors Supplément 0 avant le nombre, comment faire dans sqlserver? mon sql est

SELECT tt.Ddate as PzDate, cast(lsortingm(RTRIM(tt.VouchClassCode)) +'-'+cast (tt.VouchNo as varchar(100)) as varchar(100)) as PzZh, t.Digest as Zy, t.Ccode as Kmbm, ttt.Cname as Kmname, t.Jfje as Jfje, t.Dfje as Dfje, tt.Bill as Zhidan, tt.Checker as Shenhe, tt.Book as Jizhang, tt.VouchSource as Pzlaiy FROM [TOBROS_CWT].[dbo].[Cwzz_AccVouchSub] t left join Cwzz_AccVouchMain tt on t.VouchId = tt.VouchId left join Cwzz_AccCode ttt on t.Ccode = ttt.Ccode order by t.VouchId ,tt.Ddate,tt.VouchNo 

sql image

s'il vous plaît voir l'image, je veux changer le format PzZh, par exemple "银 -1" à "银 -0001" comment faire, merci.

Essayez d'utiliser une expression CASE et RIGHT comme suit:

 cast(lsortingm(RTRIM(tt.VouchClassCode)) +'-'+ CASE WHEN tt.VouchNo < 10000 THEN RIGHT('0000' + cast (tt.VouchNo as varchar(100)),4) ELSE cast (tt.VouchNo as varchar(100)) END as varchar(100)) as PzZh 

Vous pouvez vérifier la longueur si elle est inférieure à 4, puis append des zéros de fin

 cast(lsortingm(RTRIM(tt.VouchClassCode)) +'-'+ Case WHEN len(tt.VouchNo)< 4 Then RIGHT('0000' + cast (tt.VouchNo as varchar(100)),4) Else cast (tt.VouchNo as varchar(100)) End as varchar(100)) as PzZh