2010-02-04 2 views
1
int i=99; 
string s=i.ToString("D4"); 
//s=="0099" 

앞의 0을 텍스트 형식으로 효율적으로 구현하는 방법에 대한 조언을 구하십시오. 일반적으로t-sql의 효율적인 알고리즘으로 int.ToString ("D4")을 모방합니다.

+2

할 수는 없지만 데이터베이스에서 데이터 형식화 중입니까? SQL Server는 데이터를 형식화하는 것이 아니라 데이터를 관리하도록 최적화되어 있습니다. –

+0

내 도메인에서 도메인을 수행하면 ado.net 트랜잭션과 여러 db 요청이 올바르게 생성되므로 DB에서 내 도메인으로 로직을 이동하는 경우가 드문 경우 중 하나입니다. 성능을 위해 순도를 희생합니다. – Valentin

답변

3

내가 STH 좋아합니까 :

RIGHT('0000' + [col], 4) 
0

당신은

아래에 정의 된 funcion를 사용 dbo.fsPadLeft을 선택할 수 있습니다 (@ 나는, '0', 4)

또는 인라인 문 복제본 (x, 4-Len (x)) + x를 y에서 선택하십시오.

Create Function [dbo].[fsPadLeft](@var varchar(200),@padChar char(1)='0',@len int) 
returns varchar(300) 
as 
Begin 

return replicate(@PadChar,@len-Len(@var))[email protected] 

end 
관련 문제