2008-10-07 3 views
2

В Informix, как я могу нарисовать тип char(8) в тип money, так что я могу сравнить его с другим типом money?Литье в Informix

Использование "tblAid.amt::money as aid_amt" не работает. Использование "(tblAid.amt * 1) AS aid_amt" не работает.

+1

Какая версия Informix вы используете? (Вы всегда должны сказать, потому что ответ может быть нюансирован для решения вашей системы. Ответы меняются со временем - если вы используете IDS 7.31, ни одна из нотных надписей не будет работать.) – 2008-10-09 20:44:06

ответ

5

попробовать это ->

select (disb_amt::NUMERIC) disb_amt from tmp_kygrants; 

Вы можете сравнить количество как числовой.

+0

Скобки должны быть лишними, но не вредными. – 2008-10-09 20:44:50

1

'tis было время, так как я играл с informix, и на данный момент у меня нет подходящего экземпляра. Однако есть две вещи, которые могут вызвать проблему:

1) поскольку он является символом (8), он может содержать значения, которые не могут быть введены в числовые значения без «очистки». Например. «А». Или «1,234,567.00».
2) Промежуточные пространства. (char в отличие от варчара).

Какая ошибка informix вы получаете от вашего явного приведения (:: деньги)?

5

Первый вопрос: почему вы не храните числовое значение в числовом столбце? Это сделало бы остальную часть вашего вопроса спорным. Это также означает, что ваша система будет работать лучше. Когда вам нужно хранить данные, используйте очевидный тип; не используйте строковый тип, если данные не являются строкой.

Как уже отмечалось, вы можете использовать нестандартные Informix произнесения обозначения:

SELECT some_column::MONEY FROM WhereEver; 

Вы можете также быть более осторожными относительно типа литой - с помощью денег (8,2), например. Вы можете также использовать стандартные обозначения:

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

Это подразумевает, что вы используете IDS 9.x или более поздней версии - старые продукты не поддерживают слепки вообще. Однако, как правило, Informix неплохо делает автоматическое преобразование (например, преобразование чисел в строки). Тем не менее, строки сравниваются лексикографически, а не численно, поэтому CAST, вероятно, более мудрый в этом контексте, но избегая необходимости приведения с использованием правильного типа, в первую очередь мудрее.

 Смежные вопросы

  • Нет связанных вопросов^_^