SQL에서 선행 0 제거

Sqleseo Seonhaeng 0 Jegeo



실제 데이터를 다룰 때는 지저분하고 지저분한 경우가 많습니다. 이는 해당 데이터에 대해 수행하려는 작업 및 작업을 방해할 수 있는 불필요하거나 잘못된 데이터가 포함될 수 있음을 의미합니다.

접할 수 있는 가장 일반적인 비정한 데이터 중 하나는 데이터에 숫자 또는 문자열 데이터의 앞에 0이 포함되어 있는 데이터입니다. 이는 외부 소스에서 데이터를 가져오거나 자동화된 데이터 수집 기술을 사용할 때 발생할 수 있습니다.

데이터의 앞에 0이 있으면 특히 문자열로 저장된 숫자 값을 처리할 때 문제가 될 수 있습니다.







이 가이드에서는 SQL 데이터 세트 내에서 선행 0을 제거하기 위해 사용할 수 있는 모든 방법과 기술에 대해 설명합니다.



샘플 데이터 설정

응용 프로그램과 예제를 살펴보기 전에 앞에 오는 0의 발생을 보여주는 데 도움이 되는 기본 데이터 세트를 설정하는 것부터 시작하겠습니다.



다음과 같은 데이터가 포함된 직원 테이블을 생각해 보세요.





테이블 만들기 직원(
직원ID VARCHAR(10)
);
직원(EmployeeID) 값에 삽입
('00123'),
('00456'),
('00789'),
('01012'),
('01567');

이 경우 직원 ID는 'varchar' 유형입니다. 그러나 값 앞에 0이 포함되어 있습니다.

이러한 선행 0을 제거하는 데 사용할 수 있는 방법을 살펴보겠습니다.



CAST 기능 사용

선행 0을 제거하는 방법 중 하나는 문자열을 숫자 유형으로 변환하는 것입니다. 다음 예제와 같이 CAST 또는 CONVERT()와 같은 함수를 사용할 수 있습니다.

SELECT CAST(EmployeeID AS INT) AS EmployeeIDWithoutZeros
직원으로부터;

이것은 Cast() 함수를 지원하는 데이터베이스에서 자동으로 작동합니다.

그러나 MySQL과 같은 데이터베이스에서는 선행 0을 실제로 제거하기 위해 함수를 트림 함수로 이식해야 할 수도 있습니다. 그런 다음 다음 예에 설명된 대로 값을 숫자 유형으로 변환할 수 있습니다.

SELECT CAST(TRIM(EmployeeID에서 '0' 선행) AS SIGNED) AS EmployeeIDWithoutZeros
직원으로부터;

결과 출력은 다음과 같습니다.

LTRIM 함수 사용

선행 0을 제거하는 데 사용할 수 있는 가장 일반적이고 강력한 방법은 LTRIM() 함수를 사용하는 것입니다. 이 함수를 사용하면 주어진 문자열에서 선행 공백 문자를 제거할 수 있습니다.

그러나 제거하려는 특정 문자를 지정할 수는 없습니다. 우리의 경우 문자열에서 선행 0을 제거하여 사용할 수 있습니다.

예는 다음과 같습니다.

SELECT LTRIM(EmployeeID, '0') AS EmployeeIDWithoutZeros
직원으로부터;

이렇게 하면 문자열에서 선행 0 문자가 제거됩니다.

결론

이 튜토리얼에서는 주어진 문자열/열에서 선행 0 문자를 제거하는 데 사용할 수 있는 두 가지 주요 방법을 살펴보았습니다.