2014-12-08 2 views
3

제품 번호가있는 두 개의 테이블이 있습니다. 둘 다 12 자 (varchar(12))로 제한됩니다.SQL의 제품 번호에 0을 추가하십시오.

제품 번호 : 그들 (제품 A) 중 하나는이 같은 수의 구조가

2345 
568 
89 

그리고 제품 B가 똑같은 숫자를 가지고이 있지만 0으로 12 개 문자가 누락 채우기 위해.

제품 번호 :

000000002345 
000000000568 
000000000089 

난 그냥 시퀀스의 시작 부분에 0을 추가 제품을 테이블을 수정하려면 그것은이 같은 것입니다. 나는 REPLACE()이라는 아이디어를 가지고 있었지만 0을 추가하기 위해서 나는 다른 기능이 필요할지도 모른다. 읽어 주셔서 감사 드리며 시간에 죄송합니다.

답변

1

을 사용할 수 있습니다 이것은을 수행해야합니다

UPDATE tblA 
SET ProductNo = REPLICATE('0', 12 - LEN(ProductNo)) + ProductNo 
+0

RIGHT 함수의 옵션도 작동하지만 나에게 가장 깨끗한 방법입니다. 나는 그것을 좋아했다, 고마워! – AlexP

2

이보십시오,이 문

RIGHT('000000000000'+ISNULL(ProductNo,''),12) 
0
난 그냥의 시작 부분에 0을 추가 제품을 테이블을 수정하려면

순서.

큰 털이 질문 :이 값을 앞에 오는 0이있는 테이블에 저장하거나 필요에 따라 앞에 오는 0으로 표시 할 수 있습니까?

왜냐하면 varchar (12)는 int에서 4 바이트 만 차지하므로 메모리에서 13 바이트를 의미하므로이 열이 다른 테이블과 인덱스 및 외래 키 관계에 참여할 경우 큰 차이가 발생합니다.

+0

어떤 사람이 우연히 문자를 추가하기 시작하면 문자를 기반으로하는 식별 코드가 우연히 나오고 많은 힘으로 뒤쪽으로 쳐들어 오기 때문에 어느 것이 좋지 않습니다. 절대 그런 유형의 실수는하지 마십시오. 내부 int를 숫자로 사용하고 varchar 식별 코드에 고유 색인을 넣습니다. 대부분의 사람들은 2000 년 문제에서 현명한 저축이 아니라는 교훈을 얻었습니다. – TomTom

관련 문제