프로그래밍/DB

[DB] MSSQL 문자열 숫자유무 체크 (ISNUMERIC)

ss-pro 2023. 2. 22. 23:11
반응형

MSSQL에서 특정문자열 값이 숫자유무인지 확인 하기 위해서는 ISNUMERIC함수를 사용하면 확인 가능합니다.

함수명 구문 설명
ISNUMERIC ISNUMERIC(expression) 숫자데이터인 경우 : 1 반환
숫자데이터가 아닌경우 : 0 반환 

데이터별 처리 결과값

실제쿼리문으로 결과값이 어떻게 나오는지 테스트 해보겠습니다. 
1
2
3
4
5
6
SELECT ISNUMERIC(1234'1234',ISNUMERIC(-1234'-1234',
       ISNUMERIC('0.1234''0.1234',ISNUMERIC('-11133.1234''-11133.1234',
       ISNUMERIC('\5000''\5000', ISNUMERIC('$1.50''$1.50',ISNUMERIC('-$1.50''-$1.50',
       ISNUMERIC('2011-01-01''2011-01-01',ISNUMERIC('abc123''abc123',
       ISNUMERIC(' 123'' 123', ISNUMERIC('123  ''123  ',ISNUMERIC('1 23''1 23',  
       ISNUMERIC('abc123cc''abc123cc',ISNUMERIC('0x12''0x12'


쿼리실행결과 입니다.

숫자, 소숫점, 부호있는데이터, 통화값의 경우에도 숫자형으로 인식하여 결과값이 1로 나오는 부분을 확인 할 수 있습니다. 문자열의 경우는 ' 123', '123 '와 같이 공백이 앞 뒤에 있을경우에는 결과값이 1로 '1 23'와 같이 중간에 스페이스가 있을경우는 문자열로 인식하는 부분을 확인 할 수 있습니다. 

통화값에도 숫자형으로 입력되는 부분과 공백이 있을경우에 상황에 따라 숫자로 인식하는 경우와 문자로 인식하는 경우가 있으니 해당부분을 주의해서 사용하시기 바랍니다.