한글을 일정 길이대로 자르려면 어떻게 해야하는지좀 알려주세요
만약 '안A녕2309하세요?' 라고 있으면
SUBSTRING('안A녕2309하세요?',1,3) 하면 '안A녕' 이렇게 나오잖아요
이걸 '안A'까지만...... 그러니까 한글을 2바이트 처리해서 자를수 있는 방법은 없나요??
꼬옥 답변주세요.. DB 사이트만 여러군데 다녀봤는데 아는분이 없네요..ㅠㅠ
언어마다 함수가 다 다르지만, 원리는 string문자가 single byte 인지 multi byte 인지 알려주는 함수가 있습니다. 그 함수를 이용해서 자르기할때 응용하심 되겠습니다.
델파이의 경우...
if ByteType(p_str, p_int) = mbSingleByte then result := Copy(v_str, 1, p_int)else if ByteType(p_str, p_int) = mbLeadByte then result := Copy(v_str, 1, p_int - 1)else result := Copy(v_str, 1, p_int);
설명서:
ByteType indicates whether a byte in a string is a single byte character, the first byte of a double byte character, or the second byte of a double byte character.
MS-SQL 2000 에서 테스트한 결과입니다.
SUBSTRING(CONVERT(TEXT, '안A녕2309하세요?'), 1, 3)
이렇게 하시면 원하시는 결과 얻으실 수 있습니다.
그리고 나머지 부분을 뽑아오는 부분은
Col1 은 컬럼명입니다.
SUBSTRING(Col1, LEN(SUBSTRING(CONVERT(TEXT, Col1), 1, 3)) + 1, Col1의사이즈)