SELECT RPAD(id, 10, ' '), RPAD(name, 20, ' ') FROM test
라는 쿼리가 있는데요
test라는 테이블에서 아이디와 이름을 가져와서 찍을 건데요..
무조건 아이디는 10칸을 차지하고, 이름은 20칸을 차지하지요..
아이디가 10보다 적은 경우에는 나머지 빈공간을 오른쪽에 스페이스를
넣어주려고 합니다.
그런데
이렇게 실행한 결과에 대해서 length를 구하면 무조건 아이디의
크기는 10이 나오고 name의 크기는 20이 나오리라고 생각했는데
데이터의 내용에 따라 다르게 나오더군요..
그런데 한글은 2자씩, 영문은 한자씩 계산해서 나머지 만큼 스페이스가
생깁니다. 그런데 스페이스가 한칸 더생기는군요.
그리고 TO_CHAR(amt, '0000') 이렇게 하면 데이터는
제대로 0200으로 나오는데 length를 구하면 스페이스가 들어가서
4자리가 아니라 5자리로 나옵니다.
trim을 해도 5자리인데 그것은 왜그런가요??
쿼리에서 숫자에서 rtrim을 해도 안되는 군요..
문자인 경우 지정한 스페이스 이외에 생긴 하나의 스페이스를 제거하고
숫자인 경우 마지막 스페이스를 제거하는 방법이 없을까요??
|