SQL CAST 함수를 사용한 데이터 형식 변환에 대한 완벽한 가이드

SQL에서 데이터를 다룰 때, 서로 다른 데이터 형식 간에 값을 변환해야 할 필요가 있을 수 있습니다. SQL CAST 함수는 이러한 데이터 형식 변환을 쉽게 수행할 수 있는 편리한 도구입니다. 이 기사에서는 CAST 함수의 기본 사용법, 특정 변환 예제, 고급 예제 및 오류 처리 방법을 포함하여 자세한 설명을 제공합니다. SQL 데이터 형식 변환에 대한 지식을 향상시키고 더 고급 쿼리를 작성하는 것을 목표로 하십시오.

목차

CAST 함수의 기본 구문

CAST 함수는 데이터 형식을 변환하기 위한 표준 SQL 함수입니다. 기본 구문은 다음과 같습니다:

CAST(expression AS target_data_type)

여기서 expression은 변환할 값이나 열이고, target_data_type은 목표 데이터 형식입니다. 예를 들어 문자열을 정수로 변환하려면 다음 쿼리를 사용할 수 있습니다:

SELECT CAST('123' AS INT);

이 쿼리는 문자열 '123'을 정수로 변환하고 숫자 값 123을 반환합니다.

데이터 형식 변환 예제

다음은 CAST 함수를 사용한 데이터 형식 변환의 몇 가지 일반적인 예제입니다.

문자열을 정수로 변환

문자열 데이터를 정수 데이터 형식으로 변환하는 예제입니다.

SELECT CAST('456' AS INT) AS ConvertedValue;

이 쿼리는 문자열 '456'을 정수 456으로 변환합니다.

정수를 문자열로 변환

정수 데이터를 문자열 데이터 형식으로 변환하는 예제입니다.

SELECT CAST(789 AS VARCHAR(10)) AS ConvertedValue;

이 쿼리는 정수 789을 문자열 '789'로 변환합니다.

문자열을 날짜로 변환

문자열 데이터를 날짜 데이터 형식으로 변환하는 예제입니다.

SELECT CAST('2024-05-24' AS DATE) AS ConvertedValue;

이 쿼리는 문자열 '2024-05-24'을 날짜 2024-05-24로 변환합니다.

부동 소수점을 정수로 변환

부동 소수점 데이터를 정수 데이터 형식으로 변환하는 예제입니다.

SELECT CAST(123.456 AS INT) AS ConvertedValue;

이 쿼리는 부동 소수점 숫자 123.456을 정수 123으로 변환합니다.

CAST와 CONVERT 함수의 차이점

SQL에는 CAST 함수와 유사한 CONVERT 함수도 있습니다. 하지만 두 함수 사이에는 몇 가지 차이점이 있습니다.

기본 차이점

CAST 함수는 ANSI SQL 표준을 준수하며 대부분의 데이터베이스에서 지원됩니다. 반면에 CONVERT 함수는 주로 Microsoft SQL Server에서 사용되는 확장 기능으로 특정 형식 옵션을 제공합니다.

구문 차이점

CAST 함수의 구문:

CAST(expression AS target_data_type)

CONVERT 함수의 구문:

CONVERT(target_data_type, expression [, style])

CONVERT 함수는 특정 형식으로 날짜나 문자열을 변환할 수 있는 style 옵션을 가지고 있습니다.

사용 예제

CAST 함수의 예제:

SELECT CAST('123' AS INT) AS ConvertedValue;

CONVERT 함수의 예제:

SELECT CONVERT(INT, '123') AS ConvertedValue;

형식 옵션을 사용하는 CONVERT 함수의 예제:

SELECT CONVERT(VARCHAR, GETDATE(), 101) AS USFormattedDate;

이 쿼리는 현재 날짜를 MM/DD/YYYY 형식의 문자열로 변환합니다.

CAST 함수를 사용한 고급 예제

CAST 함수는 기본 데이터 형식 변환 외에도 다양한 고급 시나리오에서 사용할 수 있습니다. 다음은 몇 가지 실용적인 예제입니다.

숫자를 문자열로 변환하여 연결하기

숫자를 문자열로 변환하여 다른 문자열과 연결하는 예제입니다.

SELECT 'Order Number: ' + CAST(OrderID AS VARCHAR) AS OrderDescription
FROM Orders;

이 쿼리는 OrderID를 문자열로 변환하고 문자열 Order Number:와 연결합니다.

데이터 형식 일관성 강제 적용

서로 다른 데이터 형식의 열을 함께 사용할 때 데이터 형식 일관성을 보장하는 예제입니다.

SELECT CAST(SalesAmount AS DECIMAL(10, 2)) AS FormattedSalesAmount
FROM Sales;

이 쿼리는 SalesAmount 열을 소수점 이하 두 자리의 DECIMAL 형식으로 변환합니다.

날짜와 문자열 비교

비교를 위해 날짜를 문자열 형식으로 변환하는 예제입니다.

SELECT *
FROM Events
WHERE CAST(EventDate AS VARCHAR) = '2024-05-24';

이 쿼리는 EventDate 열을 문자열로 변환하고 지정된 날짜 문자열과 일치하는 행을 검색합니다.

조건부 데이터 형식 변환

CASE 문을 사용하여 조건부 데이터 형식 변환을 수행하는 예제입니다.

SELECT 
    CASE 
        WHEN IsNumeric(Value) = 1 THEN CAST(Value AS INT)
        ELSE NULL
    END AS ConvertedValue
FROM SampleTable;

이 쿼리는 Value 열의 값이 숫자인 경우에만 정수로 변환합니다.

CAST 함수를 사용한 오류 처리

데이터 형식 변환 중에 오류가 발생할 수 있습니다. CAST 함수를 사용할 때 고려할 수 있는 몇 가지 오류 처리 방법을 소개합니다.

TRY_CAST 함수 사용

SQL Server에서는 TRY_CAST 함수를 사용하여 변환 오류를 방지할 수 있습니다. TRY_CAST는 변환이 실패할 경우 NULL을 반환합니다.

SELECT TRY_CAST('abc' AS INT) AS SafeConversion;

이 쿼리는 문자열 'abc'를 정수로 변환하는 데 실패하여 NULL을 반환합니다.

CASE 문을 사용한 오류 처리

조건에 기반하여 오류 처리를 결합하는 CASE 문 예제입니다.

SELECT 
    CASE 
        WHEN ISNUMERIC(Value) = 1 THEN CAST(Value AS INT)
        ELSE NULL
    END AS SafeConversion
FROM SampleTable;

이 쿼리는 Value가 숫자가 아닌 경우 NULL을 반환합니다.

TRY_PARSE 함수 사용

TRY_PARSE는 문자열을 날짜나 숫자로 변환하는 데 유용합니다. TRY_PARSE도 변환이 실패할 경우 NULL을 반환합니다.

SELECT TRY_PARSE('2024-05-24' AS DATE USING 'en-US') AS SafeDateConversion;

이 쿼리는 문자열 '2024-05-24'을 날짜 형식으로 변환하고 변환이 실패하면 NULL을 반환합니다.

오류 처리를 위한 샘플 쿼리

다음은 TRY_CAST를 사용한 오류 처리 예제입니다.

SELECT 
    Name, 
    TRY_CAST(Age AS INT) AS SafeAge 
FROM Users;

이 쿼리는 Age 열의 값을 정수로 변환할 수 없는 경우 NULL을 반환하여 오류를 방지합니다.

결론

CAST 함수는 SQL에서 데이터 형식 변환을 위한 강력하고 유연한 도구입니다. 기본 구문을 이해하고 다양한 데이터 형식 변환 예제를 시도해 보면 더 복잡한 쿼리를 작성하는 데 도움이 됩니다. 또한, CONVERT와 TRY_CAST와 같은 다른 변환 함수의 차이점과 사용법을 아는 것이 중요합니다. 적절한 오류 처리는 신뢰할 수 있는 SQL 쿼리 작성에 필수적입니다. CAST 함수 사용법을 마스터하여 데이터베이스 작업을 더 효율적으로 수행하십시오.

목차