이 글에서는 SQL Server에서 ISNUMERIC 함수를 사용하는 방법을 구체적인 문법과 예제와 함께 자세히 소개합니다. 예제를 통해 함수의 동작 방식을 시각적으로 이해하고 실무에 바로 활용할 수 있도록 정리했습니다.
ISNUMERIC 함수란?
SQL Server의 ISNUMERIC 함수는 전달된 표현식(expression)의 값이 유효한 숫자 값인지 여부를 확인하는 함수입니다. 표현식이 유효한 숫자로 평가되면 1을 반환하고, 그렇지 않으면 0을 반환합니다.
기본 문법
SQL Server에서 ISNUMERIC 함수를 사용하려면 다음과 같은 구문을 사용합니다.
ISNUMERIC (expression)
매개변수 설명:
- expression: 숫자 여부를 검사할 임의의 표현식입니다.
참고 사항:
- 표현식이 유효한 숫자 값이면 ISNUMERIC 함수는
1을 반환합니다. - 표현식이 유효한 숫자 값이 아니면 ISNUMERIC 함수는
0을 반환합니다. - ISNUMERIC 함수는 SQL Server 2017, SQL Server 2016, SQL Server 2014, SQL Server 2012, SQL Server 2008 R2, SQL Server 2008, SQL Server 2005 이상 버전에서 사용할 수 있습니다.
주의할 점
ISNUMERIC은 단순히 숫자만이 아니라 통화 기호($, ₩), 부호(+, -), 콤마(,) 등 숫자로 변환 가능한 문자도 1을 반환할 수 있습니다. 따라서 엄격한 숫자 검증이 필요하다면 SQL Server 2012 이상에서 제공하는 TRY_CAST 또는 TRY_CONVERT 함수를 함께 고려하는 것이 좋습니다.
사용 예제
다음 예제를 통해 SQL Server에서 ISNUMERIC 함수가 어떻게 동작하는지 살펴보겠습니다.
SELECT ISNUMERIC(1234);
-- 결과: 1
SELECT ISNUMERIC('1234');
-- 결과: 1
SELECT ISNUMERIC(10 * 5);
-- 결과: 1
SELECT ISNUMERIC('quantrimang.com');
-- 결과: 0
SELECT ISNUMERIC('2014-05-01');
-- 결과: 0
예제 해석:
ISNUMERIC(1234): 정수 값이므로1을 반환합니다.ISNUMERIC('1234'): 문자열이지만 숫자로 변환 가능하므로1을 반환합니다.ISNUMERIC(10 * 5): 연산 결과인 50이 숫자이므로1을 반환합니다.ISNUMERIC('quantrimang.com'): 숫자로 변환할 수 없는 문자열이므로0을 반환합니다.ISNUMERIC('2014-05-01'): 날짜 형식의 문자열은 숫자로 간주되지 않으므로0을 반환합니다.
이처럼 ISNUMERIC 함수는 데이터 클렌징 작업이나 입력값 검증 시 특정 열의 값이 숫자인지 빠르게 판별해야 할 때 유용하게 활용할 수 있습니다.