2012-07-02 3 views
0

가져 오기 임시 테이블에서 데이터를 삽입하는 마스터 테이블이 있습니다. 데이터에는 마사지가 많이 필요하지 않지만 차원을 다루는 열은 하나의 열입니다. 내가 기록하는 치수는 길이, 너비 및 높이입니다. 그것들은 각각 3 개의 분리 된 열, varchar (10)입니다.임베디드 문자의 스플릿 문자열

가져 오기 테이블에는 이러한 항목이 하나의 열에 결합되어 있으며 "x"로 구분되어 있으므로 LxWxH입니다.

궁극적으로 나는이 변환을 실행 가능한 저장 프로 시저에 작성하고 있지만이 분할에 걸려있다. 누군가이 코드를 작성하는 방법을 알려줄 수 있습니까?

내 삽입물의 템플릿은 : 가정 마스터 테이블 ID (INT), 길이 VARCHAR (10), 폭 VARCHAR (10), 높이 VARCHAR이다 (10) 가정 임포트 테이블 ID (INT)이다 VARCHAR를 흐릿 (50)

데이터 (가져 오기)에서 다음과 같습니다

1 1.2x3.5x9.5 
2 2.4x3.5x8.5 
etc etc 

코드 : 어떤 도움에 감사드립니다

insert into [mastertable] 
id, length, width, height 
select 
from [importtable] 

! SQL Server 버전은 2008입니다.

답변

2
INSERT dbo.mastertable (id, length, width, height) 
SELECT 
    ID, 
    L, 
    W = SUBSTRING(R, 1, CHARINDEX('x', r)-1), 
    H = SUBSTRING(R, LEN(R)-CHARINDEX('x', REVERSE(r))+2, 255) 
FROM 
(
    SELECT ID, LWH, 
    L = SUBSTRING(LWH, 1, CHARINDEX('x', LWH)-1), 
    r = SUBSTRING(LWH, CHARINDEX('x', LWH)+1, 255) 
    FROM dbo.importtable 
) AS x; 
+0

예지 .. 그게 한마디했지만 분명히 효과가있었습니다. 감사! – optionsix

+0

@optionsix 예 예쁘지 않다고 말한 적은 없습니다. 아마도 30 가지 또는 40 가지 방법이 있으며, 모두 레벨이나 가독성이 다양합니다. –