2013-10-23 3 views
1

최대 120 자까지 허용하는 필드가있는 테이블이 있습니다. 필드를 세 개의 필드로 나누고 싶습니다. 필드가 40자를 초과하고 80보다 작 으면 필드를 두 개로 나눕니다. 분리 점은 40 번째 문자 앞에 첫 번째 공백 문자 여야하며 두 개의 새 필드를 다른 테이블에 추가해야합니다. 필드가 120 char이면 3으로 나눕니다.필드 분할 및이 필드를 다른 테이블에 추가

도움을 주셔서 감사합니다!

답변

1

나는 당신의 라인을 따라 뭔가를 할 수 같아요

SELECT 
    SUBSTRING(MyCol,1,40), 
    NULLIF(SUBSTRING(MyCol,41,40), ''), 
    NULLIF(SUBSTRING(MyCol,81,40), ''), 

이 1 열이 INSERT 문에 대해 올바르게 분류하도록하려면.

함수가 해당 값에 대해 빈 문자열을 반환하면 NullIf 함수는 어떤 열도 NULL이어야 올바르게 설정합니다.

+1

논리가 좋습니다. 그러나 질문자는 분리 관심사의 40 문자 이내의 마지막 공백 문자에서 분리를 원합니다. (유스 케이스를 깨고 120 자 안에 4 개의 공백이 있으면 네 번째 필드를 도입합니다) –

관련 문제