2011-03-07 2 views
1

안녕하세요 저는 테이블 ID가 실제로 varchar2 인 오라클 DB에서 작업하고 있습니다. 2000, 30201. 이제 TO_NUMBER() 함수를 사용하지만 결과는 여전히 unsuccessfull로 나오므로이 값을 숫자로 비교해야합니다. 예제 코드는 아래와 같습니다. 어떤 도움도 깊이 감사드립니다.varchar2를 숫자로 변환하면 결과가 올바르게 표시되지 않습니다.

SELECT ID FROM facty WHERE to_number(ID)>2 ORDER BY ID 

현재 결과 : 은 11, 4, 5, 6, 8, 9

난 4, 5, 6, 8, 9, 11

+1

왜 숫자를 텍스트로 저장하고 있습니까? 이것은 비효율적이며 ID 중 하나가 잘못된 번호 일 때 많은 문제를 일으 킵니다. –

답변

2

생산 필요 오라클을 사용하지 마십시오. 에도 to_number(id)을 포함시켜야 할 것으로 추측됩니다. 현재 쿼리 ORDER BY은 숫자 변환이 아닌 varchar 필드를 사용합니다.

+0

TIP에 감사드립니다 !! 나는 TO_NUMBER (ID)로 주문을 시도했으나 제대로 작동합니다. – luhfluh

+0

나는 그것이 종래가 아니라는 것을 알고 있으며, 삶을 훨씬 더 어렵게 만들지 만 그것이 회사의 현재 데이터 사전 (레거시 물건)이며, 일부 값은 ALPHABETS (예 : 'A302')와 일부 순수한 '30201'으로 끝납니다. 나는 단지 그것에 충실해야한다. 지금. – luhfluh

관련 문제