티스토리 뷰

반응형

ColumnStore 엔진으로 데이터를 저장한 테이블에서 특정 컬럼에 한글이 포함되어 있고, 이 값을 앞에서 10글자만

잘라서 사용하고 싶을 때, substr()함수를 사용하면 null이 리턴이 됩니다.

이 경우에 제가 해결한 방법 3가지를 소개해 드립니다.

 

  • 방법1) Operating Mode 변경
    • set infinidb_vtable_mode = 0
    • select substr( prdt_nm, 1, 10) as prdt_nm_10 from t_order;

 

  • 방법2) collate utf8_bin 를 해당 필드 조회시 사용
    • select substr( prdt_nm collate utf8_bin, 1, 10) as prdt_nm_10  from t_order;

 

  • 방법3) 정규표현식 사용
    • select regexp_substr( prdt_nm, '^[[:print:]]{10}') as prdt_nm_10 from t_order;

 

 

 

 

반응형