이전에 ISNUMERIC 함수가 거시기한 것 같아 이 함수 관련해서 적어놓은 것이 있었는데
어디로 갔는지 찾을 수가 없어 헤메다가 아래와 같은 글을 발견하게 되어 다시 스크랩해놓는다..-_-;
블로그를 돌아다니다가, ISNUMERIC 함수와 관련된 사항이 있어서 글 올립니다..
ISNUMERIC 함수는 해당 값이 숫자인지를 판단하는데 이용하는 함수로, 저의 경우 자주 이용했던 함수입니다.
그런데~~ 문제가 있을 수 있는 경우가 있습니다..
다음 예제를 보시지요..
DECLARE @S VARCHAR(50) SET @S = CHAR(9) --- CHAR(9) 는TAB 임 SELECT ISNUMERIC(@S), ISNUMERIC(CHAR(9)),ISNUMERIC('1D2'),ISNUMERIC('D') GO
TAB 문자인 CHAR(9)를 숫자 맞다고 하지 않나, 또 '1D2'를 숫자가 맞다라고 하지 않나.. ㅡ,.ㅡ
또 다른 예제를 보겠습니다.
CREATE TABLE #foo (Value VARCHAR(20)) GO INSERT INTO #foo SELECT '1' SELECT '3' SELECT 'B' SELECT '2' SELECT '33.331' SELECT 'adad1' UNION ALL SELECT '1d2' SELECT '^' SELECT '17777.999' GO
임시 테이블을 하나 만들어 값들을 마구 넣습니다.
-- ^ 이출력 SELECT * FROM #foo WHERE Value NOT LIKE '%[a-z]%' GO
-- 1d2 가출력 SELECT * FROM #foo WHERE ISNUMERIC(Value) = 1 GO
-- 올바른결과가출력 SELECT * FROM #foo WHERE Value NOT LIKE '%[a-z]%' AND ISNUMERIC(Value) = 1 GO
결론 ) ISNUMERIC 함수를 쓸 때~!! 주의합시다..( NOT LIKE '%[a-z]%' 등과 같은 조건을 같이 붙이면서..) | ||||||||||
| ||||||||||
|
'연구개발 > DBA' 카테고리의 다른 글
SQL Server 2000 나만의 노하우 & 팁 (0) | 2009.06.29 |
---|---|
동적 SQL의 축복과 저주 (0) | 2009.06.29 |
T-SQL 작성시 체크리스트 (0) | 2009.06.29 |
OVER()를 이용한 집계 처리 (0) | 2009.06.29 |
프로시져 내에서 sql파일 실행하기. (0) | 2009.06.29 |