문제

Informix에서 어떻게 캐스팅 할 수 있습니까? char(8) a에 입력하십시오 money 타입, 다른 사람과 비교할 수 있도록 money 유형?

사용 "사용tblAid.amt::money as aid_amt"작동하지 않았습니다. 사용"(tblAid.amt * 1) AS aid_amt" 작동하지 않았다.

도움이 되었습니까?

해결책

이것을 시도하십시오 ->

select (disb_amt::NUMERIC) disb_amt from tmp_kygrants;

양을 숫자로 비교할 수 있습니다.

다른 팁

첫 번째 질문 - 왜 지구상에서 숫자 값을 숫자 열에 저장하지 않습니까? 이것은 당신의 나머지 질문을 무시할 것입니다. 또한 시스템이 더 나은 성능을 발휘할 것입니다. 데이터 값을 저장 해야하는 경우 명백한 유형을 사용하십시오. 데이터가 문자열이 아닌 한 문자열 유형을 사용하지 마십시오.

이미 언급했듯이 비표준 Informix 캐스트 표기법을 사용할 수 있습니다.

SELECT some_column::MONEY FROM WhereEver;

예를 들어 돈 (8,2)을 사용하는 캐스트 유형에 대해 더 조심할 수도 있습니다. 표준 표기법을 사용할 수도 있습니다.

SELECT CAST(some_column AS MONEY(8,2)) FROM WhereEver;

이것은 ID 9.X 이상을 사용한다고 가정합니다. 이전 제품은 캐스트를 전혀 지원하지 않습니다. 그러나 일반적으로 Informix는 자동으로 변환을 수행하는 데 매우 좋습니다 (예 : 숫자를 문자열로 변환). 그러나 문자열은 수치 적으로 비교되므로 수치 적으로 비교되므로 이러한 맥락에서 캐스트가 더 현명 할 수 있습니다. 그러나 처음에 올바른 유형을 사용하여 캐스트가 필요하지 않아도됩니다.

'Informix와 함께 연주 한 이래로 오랜 시간이 걸렸으며 현재 실행중인 인스턴스가 없습니다. 그러나 여기에는 문제를 일으킬 수있는 두 가지가 있습니다.

1) char (8)이기 때문에 약간의 '청소'없이는 숫자로 캐스트 할 수없는 값을 포함 할 수 있습니다. 예 : "ABC". 또는 "1,234,567.00".
2) 후행 공간. (Varchar와 반대되는 숯).

명시 적 캐스트 (:: Money)에 어떤 정보 오류가 발생합니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top