-
ISNUMERIC 함수 문제점??카테고리 없음 2012. 9. 4. 16:07
안녕하세요. 이스트럭(강동운) 입니다.
오늘은 NUMERIC 함수의 문제점?에.. 대해서 알아볼까 합니다.
우선 MSDN 부터...
ISNUMERIC(Transact-SQL): http://msdn.microsoft.com/ko-kr/library/ms186272.aspx
선식이형이 아주 깔끔하게 정리를 해주셨군요~
링크: http://www.sqler.com/470347
쉽게 말해서 1을 리턴하면 숫자이고, 0을 리턴하면 숫자가 아니라는 것이죠~!
그렇다면 아래 같은 어이없는? 상황을 한번 봐봅시다.
SELECT ISNUMERIC('00a1') AS '00a1' , ISNUMERIC('00b1') AS '00b1' , ISNUMERIC('00c1') AS '00c1' , ISNUMERIC('00d1') AS '00d1' , ISNUMERIC('00e1') AS '00e1' , ISNUMERIC('00f1') AS '00f1'
결과 값이 어떻게 될까요?오우! 00d1과 00e1이 숫.자.로 나왔습니다.
왜 이런 문제가 생길까요??
여기저기 구글링을 통해서 알아냈습니다~ㅋㅋ
바로.. 포트란 언어 때문에 그렇다고 합니다.
포트란에서 실수형 상수에서 지수형 표기법은 E와 D를 사용합니다.
D: (Double precision) => C언어에서는 DOUBLE
E: (Single precision) => C언에에서는 FLOAT
MSDN 보시면.. 아래의 타입일경우 1을 반환하는 것을 볼 수 있습니다.
int
numeric
bigint
money
smallint
smallmoney
tinyint
float
decimal
real
그렇다면 이 문제를 어떻게 해결해야 할까요?
추가로 함수를 구현한다거나 해야겠지요? ^^;
참고 링크: http://www.sql-server-performance.com/forum/threads/problem-with-isnumeric.11181/
포트란 참고링크: http://sciphy.tistory.com/1298
감사합니다. ^^
작성자: 이스트럭(강동운)
작성일: 2012-09-04