Informix에서는 어떻게 다른 money
유형과 비교할 수 있습니까? money
유형으로 변환하려면 char(8)
유형을 입력 할 수 있습니까?Informix에서의 캐스팅
"tblAid.amt::money as aid_amt
"을 사용하면 작동하지 않습니다. "(tblAid.amt * 1) AS aid_amt
"을 사용하면 작동하지 않습니다.
Informix에서는 어떻게 다른 money
유형과 비교할 수 있습니까? money
유형으로 변환하려면 char(8)
유형을 입력 할 수 있습니까?Informix에서의 캐스팅
"tblAid.amt::money as aid_amt
"을 사용하면 작동하지 않습니다. "(tblAid.amt * 1) AS aid_amt
"을 사용하면 작동하지 않습니다.
노력이 ->
select (disb_amt::NUMERIC) disb_amt from tmp_kygrants;
당신은 숫자로 금액을 비교할 수 있습니다.
괄호는 불필요하지만 유해하지 않아야합니다 (시스템에 대한 답변이 미묘하기 때문에 항상 대답해야합니다. –
'나는 informix로 놀았 기 때문에 잠시 동안이었고, 현재 실행중인 인스턴스가별로 유용하지 않습니다. 그러나 여기에 문제가 발생할 수있는 두 가지가 있습니다.
1) char (8)이므로 '정리'없이 숫자에 캐스팅 할 수없는 값을 포함 할 수 있습니다. 예 : "알파벳". 또는 "1,234,567.00".
2) 뒤 공백. (varchar와 반대로 char).
명시 적 캐스트 (:: money)에 어떤 informix 오류가 발생합니까?
첫 번째 질문 - 왜 숫자 열에 숫자 값을 저장하지 않는 이유가 무엇입니까? 이렇게하면 남은 질문을 논리적으로 할 수 있습니다. 또한 시스템 성능이 향상 될 수도 있습니다. 데이터 값을 저장해야 할 때는 명백한 유형을 사용하십시오. 데이터가 문자열이 아닌 이상 문자열 유형을 사용하지 마십시오. 돈 (8,2)를 사용하여, 예를 들어 -
SELECT some_column::MONEY FROM WhereEver;
또한 캐스트 유형에 대한 더 조심 수 있습니다
으로 이미 당신은 표준이 아닌 인포믹스 캐스트 표기법을 사용할 수 있습니다 지적했다. 또한 표준 표기법을 사용할 수 있습니다
SELECT CAST(some_column AS MONEY(8,2)) FROM WhereEver;
이 나중에 IDS 9.x의 이상을 사용하는 가정을 - 오래된 제품은 전혀 캐스트를 지원하지 않습니다. 그러나 일반적으로 Informix는 자동으로 변환 (예 : 숫자를 문자열로 변환)하는 것이 좋습니다. 그러나 문자열은 사전 적으로나 수치 적으로 비교되지 않으므로 CAST는이 컨텍스트에서 현명합니다. 그러나 올바른 유형을 사용하여 캐스트를 사용하지 않아도 여전히 현명합니다.
사용중인 Informix 버전은 무엇입니까? IDS 7.31을 사용하는 경우 주조 표기법이 작동하지 않습니다. –