ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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


Designed by Tistory.