2013-06-11 2 views
0

InfoPath의 드롭 다운 상자에서 SQL 테이블의 두 필드 정보를 채우려하고 있지만 정확히 원하는 방식으로 가져 오는 데 문제가있는 것 같습니다.Leading Zero 's + concatanation in SQL

하나의 필드는 최대 4 자리 (0 - 1956)의 int 필드이고 다른 필드는 이름 필드입니다. 이상적으로 두 개의 탭으로 구분 된 하나의 드롭 다운 상자에 번호를 기준으로 정렬하고 앞에 0을 추가하는 것이 좋습니다 (따라서 12 대신 0012으로 읽음). 그러나 어떻게 SQL 문을 사용하는지 잘 모르겠습니다. 그럴거야.

나는 문자 (9) 실제로 두 필드 사이에 탭을 삽입하지 않지만, 아래 문을 사용하여 연결 아래가 (AN InfoPath는 일이 될 수 있을까? 아니면 것이 잘못입니까?)

SELECT CONVERT(varchar(5), myNumber) + char(9) + char(9) + RTRIM(Name) 
    AS myField 
FROM myTable order by myField 

선행 0이 존재하지 않기 때문에 0, 1, 10, 100, 1000, 1001 등으로 정렬됩니다.이 링크에 선행 0을 넣는 예제를 보았습니다. 그러나이 두 가지를 결합하는 방법은 확실하지 않습니다. 그래서 하나의 호출에서 concatanation이 일어나고 있습니다. 누구든지 이걸 도와주고 싶습니까?

답변

1
SELECT Right('00000' + CONVERT(varchar(5), myNumber), 4) + char(9) + char(9) + RTRIM(Name) 
    AS myField 
FROM myTable order by myField 
+0

대단히 감사합니다. – user1389971

+1

왜 오른쪽 5 및 오른쪽 4? –

+0

@DanBracuk 그것은 4 일 수 있습니다. 나는 varchar (5)를보고 그것에 붙어있었습니다. 나는 내 게시물을 바꿀 것이다. –