Première question - pourquoi diable ne stockez-vous pas une valeur numérique dans une colonne numérique? Cela rendrait le reste de votre question discutable. Cela signifie également que votre système fonctionnera mieux. Lorsque vous avez besoin de stocker des valeurs de données, utilisez le type évident; N'utilisez pas un type de chaîne sauf si les données sont une chaîne.
Comme indiqué précédemment, vous pouvez utiliser la notation cast Informix non standard:
SELECT some_column::MONEY FROM WhereEver;
Vous pouvez également être plus prudent sur le type de casting - en utilisant l'argent (8,2) par exemple. Vous pouvez également utiliser la notation standard:
SELECT CAST(some_column AS MONEY(8,2)) FROM WhereEver;
Cela suppose que vous utilisez IDS 9.x ou plus tard - produits plus anciens ne prennent pas en charge des moulages du tout. Cependant, en général, Informix est très bon pour effectuer des conversions automatiquement (par exemple, convertir des nombres en chaînes). Cependant, les chaînes sont comparées lexicographiquement et non numériquement, donc un CAST est probablement plus sage dans ce contexte - mais éviter d'avoir besoin d'une distribution en utilisant le type correct en premier lieu est plus sage.
Quelle version d'Informix utilisez-vous? (Vous devriez toujours dire, parce que la réponse peut être nuancée pour adresser votre système.Les réponses changent au fil du temps - si vous utilisez IDS 7.31, aucune des notations de cast ne fonctionnera.) –