SQL Server/실기 정리

SQL Server 40강 - 형변환 함수 CAST()와 CONVERT()

코딩하는냥이 2025. 6. 4. 14:46
반응형

이번 글에서는 숫자형 데이터를 문자열로 변환하는 CAST()와 CONVERT() 함수의 사용법을 익혔습니다.
특히 형변환 시 주의해야 할 문자열 길이 초과에 따른 오류 상황도 함께 실습했습니다.


📌 예제 코드 ①: CAST() 함수 사용

SELECT 
    CAST(ipo_year AS nvarchar(50)) + ' ' + CAST(open_price AS nvarchar(50)) 
FROM nasdaq_company 
WHERE symbol = 'MSFT';

💬 설명

  • ipo_year과 open_price는 숫자형이므로 문자열로 변환 후 결합해야 함
  • CAST()는 표준 SQL이며 다양한 DBMS에서 동일하게 사용 가능
  • + 연산자로 문자열을 연결하기 위해 nvarchar로 명시적 형변환 수행

📌 예제 코드 ②: CONVERT() 함수 사용

SELECT 
    CONVERT(nvarchar(50), ipo_year) + ' ' + CONVERT(nvarchar(50), open_price) 
FROM nasdaq_company 
WHERE symbol = 'MSFT';

💬 설명

  • CONVERT()는 SQL Server 전용 함수로, 변환 대상 데이터 유형을 먼저 지정
  • 동작은 CAST()와 동일하지만, 날짜 포맷 등을 지정할 수 있는 확장 기능을 제공함

📌 예제 코드 ③: 자릿수 초과 오류 발생 예시

SELECT CONVERT(nvarchar(5), 1234567890);

⚠️ 오류 설명

  • nvarchar(5)는 최대 5자의 문자열만 저장 가능
  • 1234567890은 10자리 숫자 → 변환 불가
  • 결과적으로 다음과 같은 오류 발생:
메시지 8115, 수준 16, 상태 2, 줄 XX  
expression을(를) 데이터 형식 nvarchar(으)로 변환하는 중 산술 오버플로 오류가 발생했습니다.
  • 이처럼 변환 대상 크기가 충분하지 않으면 오류가 발생할 수 있으므로
    형변환 시 데이터 길이 확인은 필수입니다.

💡 포인트 정리

  • CAST()와 CONVERT()는 숫자형 → 문자열형 변환에 사용됨
  • CAST()는 표준 SQL, CONVERT()는 SQL Server 전용
  • 변환 시 nvarchar(n)의 n 값이 너무 작으면 오버플로 오류 발생
  • 긴 숫자 또는 문자열 변환 시는 충분한 길이 확보 필요

📌 정리하자면, 이번 강의에서는 형변환 함수 CAST()와 CONVERT()를 사용해
숫자형 데이터를 문자열로 변환하는 법과,
변환 대상의 길이가 짧을 경우 발생하는 오버플로 오류까지 실습해 보았습니다.
데이터 길이와 타입을 꼼꼼히 확인하는 습관이 중요합니다.