회사명으로 정렬하려하는데 replace를이용해 회사명에 붙은 (주)를 제외하고 정렬하려한다

select

        replace(컬럼명, '(주)', '')  as orbycolumn

from 회사테이블

order by orbycolumn;

 

쿼리를 실행했지만 원하는 데이터가 나오지 않았다

ㄱ이맨위로와야하는데 ㄷ이 맨위로오고 데이터가 뒤죽박죽이였다

문자열정렬에 이슈가 있나 하고 DataBase collate를 조회해보았다

 

SHOW lc_collate

 

쿼리 실행을 한 결과 collate가 en_US.utf8 로 설정되있다

DataBase 생성을 할 때 따로 명시하지않아 자동으로 잡은모양이다.

정렬할 Column의 collcate를 수정해주면 된다

 

ALTER TABLE company ALTER COLUMN COMPANY_NAME SET DATA TYPE character varying(255) COLLATE "ko-KR-x-icu"

 

쿼리 실행 후 다시 조회해보았더니 원하는대로 데이터가 정렬되었다.

 


특정 Column에 대한 collate만 수정을 한 것이기 때문에 DataBase를 생성할 땐 collate도 설정해야겠다

+ Recent posts