2013-01-04 2 views
-1

여기에 문자열로 쓰여진 날짜에 여전히 문제가 없었습니다.
필자의 숫자 만 텍스트와 같은 텍스트 열이 있습니다.
9가 30보다 크므로 함수 MAX를 사용하면 잘못된 결과가 나타납니다.
여기에는 VAL 또는 CINT와 같은 인라인 함수 또는 SELECT와 같은 쿼리에서 숫자와 같은 텍스트 데이터 (숫자 만)를 비교하고 사용할 수있는 함수가 있습니다. MAX와 다른 비슷한?Postgresql, MAX 함수 결과를 얻기 위해 텍스트를 숫자로 처리하십시오.

다음 예에서와 같이 할 수있는 것보다 방법 :

mCmd = New OdbcCommand("SELECT MAX(myTextColumn) FROM " & myTable, mCon) 

답변

1

을 당신은 매뉴얼에 max(to_number(myTextColumn, '999999'))

자세한 내용을 사용할 필요가 모든 "숫자"만약 http://www.postgresql.org/docs/current/static/functions-formatting.html

정수는 당신이 있습니다 캐스팅 연산자를 사용할 수도 있습니다. max(myTextColumn::int)

텍스트 값의 형식이 올바른 경우 예를 들어 '3.14'::numeric과 같이 두 번 입력하면됩니다.

텍스트가 당신이 소수 구분 기호가 포함 된 형식 마스크 to_number()를 사용하는 데 필요한 언어 설정에 따라 형식이되지 않는 경우 : to_number('3.14', '9.99')

+0

"이름". 좋은 작품! –

+0

비슷한 방법으로 텍스트를 배정도 숫자로 변환 할 수 있다면 문서에서 찾을 수 없습니까? –

+0

@ user973238 : 내 편집 참조 btw : 사용 가능한 형식 마스크 및 의미 *는 설명서에 설명되어 있습니다. 그냥 주조로. 형식 변환에 대한 장을 읽는 것이 좋습니다. http://www.postgresql.org/docs/current/static/typeconv.html –

1

는 MAX를 얻으려면 먼저 숫자에 텍스트 필드를 변환 할 필요가 poterly 작동 형식

mCmd = New OdbcCommand("SELECT MAX(TO_NUMBER(myTextColumn, '99999')) FROM " & myTable, mCon) 
+0

감사합니다. Lorenzo. 죄송합니다. 하나 이상의 답변을 수락 할 수 없습니다. –

관련 문제