回答

收藏

在SQL中将前导0加到int的最有效方法

技术问答 技术问答 226 人阅读 | 0 人回复 | 2023-09-14

我需要从连接为“ field1-field2”的数据库中返回两个字段。第二个字段是一个int,但需要以固定长度5(前导0)返回。我正在使用的方法是:& Y8 ~7 x7 u8 I$ C7 [6 A7 i
SELECT Field1 + '-' + RIGHT('0000' + CAST(Field2 AS varchar),5) FROM ...# e9 G, \, S- q, P9 H6 N+ g
有没有更有效的方法可以做到这一点?8 B& V+ _1 _$ B7 H
               
2 r3 |( U, S4 V. O. P! e解决方案:; w: J* G8 {: r9 N" x
               
/ U! t) b! }, Y- Q" u/ x/ u/ i/ S2 t  ]/ w! |& E' ^
4 Z1 Q- W8 c6 \4 Z* f* I$ P
                大致就是这样:将前导零添加到整数值6 P7 Q9 u  {4 J% P" v. v7 e
因此,为了保存链接,查询看起来像这样,其中#Numbers表和Num列在哪里:
* z5 y5 R" Q+ w3 F1 p   SELECT RIGHT('000000000' + CONVERT(VARCHAR(8),Num), 8) FROM #Numbers, r3 i  c* x+ y' w' `, I- B; `! R
负值或正值) I4 {& a6 H7 u0 w
declare @v varchar(6)
5 _* u( n: {+ Y' _  `select @v = -5
6 s5 ]; l" r6 O$ d6 D( B7 USELECT case  when @v < 0
- B4 k$ I, X6 dthen '-' else '' end + RIGHT('00000' + replace(@v,'-',''), 5)
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则