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
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