mysql 의 LPAD 와 RPAD 는 SELECT 결과의 특정 문자열을 길이를 강제로 맞출 수 있다. 화면에 표시될 문자열을 일정한 자릿수로 표현하기 위해 사용되며, LPAD 는 왼쪽에 RPAD 는 오른쪽에 문자를 추가하여 자릿수를 맞춘다. 이 둘의 함수의 사용법은 같지만 결과는 다르다.
mysql 문자열 자릿수 채우기
LPAD 왼쪽 RPAD 오른쪽 사용 방법
게시판과 같은 프로그램을 만들다보면 mysql 을 사용할 수 있고, 특정 데이터의 경우 문자열의 길이를 강제로 맞출 필요가 있다.
규격이나 이름과 같은 코드명이 부여되거나 또는 양식에 보여줄 데이터의 경우들이 이런 경우들에 속한다.
mysql 에는 LPAD 와 RPAD 함수를 사용하여 문자열의 길이를 맞추고 빈 공간은 특정 문자로 채울 수 있다.
결론적으로 LPAD 는 왼쪽에 RPAD 는 오른쪽에 문자열의 길이에 부족한 부분을 특정 문자로 채운다.
예를 들어 코드번호의 자릿수가 4자리라고 할 때 실제 부여된 코드는 11 이라면 LPAD의 경우 00을 붙여 0011 로 표현하고 RAPD 의 경우 1100 로 표현한다.
LPAD RPAD 사용법
mysql 에서 LPAD 와 RPAD 의 사용법에 대한 방법은 다음과 같다.
각각의 함수는 사용법이 같지만 결과는 다르다.
주어진 문자열 길이만큼 부족한 부분을 특정 단어로 채우고자 할 때 LPAD 는 왼쪽에 RPAD 는 오른쪽에 붙인다.
LPAD( string, length, LPad_string)
RPAD( string, length, RPad_string)
인자값은 3가지로 string, length, Lpad_string 또는 Rpad_string 이 있다.
- string : 원본 문자열
- length : 출력할 문자열 길이
- LPad_string : 왼쪽에 채울 문자열
- RPad_string : 오른쪽에 채울 문자열
아래는 위의 사용법으로 예제를 만들어 본 것이다.
LPAD( '11', 4, '00')
RPAD( '코드', 4, 'XX')
첫번째 LPAD 의 의미는 11 이란 숫자를 화면에 4자리로 표현하고, 부족한 공간은 00 으로 왼쪽에 채운다는 뜻이다.
두번째 RPAD 의 미미는 코드 란 문자를 화면에 4자리로 표현하고, 부족한 공간은 XX 로 오른쪽에 채운다는 뜻이다.
코드 및 결과
위의 예제를 이용하여 코드로 만들어 본다.
mysql 의 변수를 사용하고 변수를 LPAD 와 RPAD 를 이용하여 자릿수를 맞추어 출력해 보도록 한다.
첫번째는 숫자를 4자리 문자열로 출력하기 위한 것이고, 두번째는 문자를 4자리 문자열로 출력하기 위한 것이다.
SET @stringTxt = '11';
SET @lengthTxt = 4;
SET @padString = '0';
SELECT @stringTxt AS txt
, LPAD( @stringTxt, @lengthTxt, @padString) AS LPAD
, RPAD( @stringTxt, @lengthTxt, @padString) AS RPAD
;
SET @stringTxt = '가나';
SET @lengthTxt = 4;
SET @padString = 'X';
SELECT @stringTxt AS txt
, LPAD( @stringTxt, @lengthTxt, @padString) AS LPAD
, RPAD( @stringTxt, @lengthTxt, @padString) AS RPAD
;
첫번째 쿼리의 의미는 숫자 11 를 문자열 4자리로 표현하되 부족한 공간은 왼쪽 또는 오른쪽에 0 으로 채운다.
두번째 쿼리의 의미는 문자 가나 를 문자열 4자리로 표현하되 부족한 공간은 왼쪽 또는 오른쪽에 X 로 채운다.
결과 화면을 보자.
첫번째는 부족한 공간에 0 을 채웠다. LPAD 는 왼쪽에 0 을 채우고 RPAD 는 오른쪽에 0 을 채우고 자릿수를 맞춘다.
두번째는 부족한 공간에 X 를 채웠다. LPAD 는 왼쪽에 X 를 채우고 RPAD 는 오른쪽에 X 를 채우고 자릿수를 맞춘다.
'programming > DataManage' 카테고리의 다른 글
내장 DB 데이터베이스 종류 대중적인 것이 좋은 것 (0) | 2024.04.01 |
---|---|
mysql ORDER BY 정렬 숫자와 문자의 차이 문자는 순서, 숫자는 크기 (0) | 2023.03.07 |
mysql 특수문자 이스케이프 사용하기 문자열을 자유롭게 사용한다 (0) | 2023.02.16 |
mysql select 행번호 표시 @row_number 세션 변수 사용 (0) | 2023.02.14 |
mysql 테이블 목록 조회 방법 show tables과 information_schema 사용 (0) | 2023.02.02 |
댓글