سؤال

في ينفورميكس، كيف يمكنني يلقي نوع char(8) إلى نوع money، حتى أستطيع أن قارنه إلى نوع money آخر؟

وعن طريق "tblAid.amt::money as aid_amt" لم تنجح. باستخدام "(tblAid.amt * 1) AS aid_amt" لم تنجح.

هل كانت مفيدة؟

المحلول

وهذه محاولة ->

select (disb_amt::NUMERIC) disb_amt from tmp_kygrants;

وقد تكون قادرة على المقارنة بين المبالغ كما رقمية.

نصائح أخرى

والسؤال الأول - لماذا على وجه الأرض لا تخزين قيمة رقمية في عمود رقمي؟ وهذا من شأنه بقية الصورية سؤالك. فإن ذلك يعني أيضا أن النظام يعمل بشكل افضل. عندما تحتاج إلى تخزين قيم البيانات، استخدام نوع واضح. لا تستخدم نوع السلسلة إلا إذا كانت البيانات سلسلة.

وكما سبقت الإشارة، يمكنك استخدام غير قياسي تدوين ينفورميكس المدلى بها:

SELECT some_column::MONEY FROM WhereEver;

ويمكنك أيضا أن تكون أكثر حذرا حول نوع الزهر - باستخدام MONEY (8،2) على سبيل المثال. يمكنك أيضا استخدام ترميز موحد:

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

وهذا يفترض كنت تستخدم IDS 9.x من أو في وقت لاحق - المنتجات القديمة لا تدعم يلقي على الإطلاق. لكن، بشكل عام، ينفورميكس هو جيد جدا عن القيام التحويلات تلقائيا (على سبيل المثال، تحويل الأرقام إلى سلاسل). ومع ذلك، يتم مقارنة سلاسل lexicographically وليس عدديا، لذلك CAST هو على الارجح أكثر حكمة في هذا السياق - ولكن تجنب الحاجة ليلقي باستخدام نوع الصحيح في المقام الأول هو الأكثر حكمة لا يزال

'تيس تم منذ بعض الوقت لقد لعبت حوالي مع ينفورميكس وأنا لم يكن لديك مثيل تشغيل مفيد في الوقت الراهن. ومع ذلك، هناك نوعان من الأشياء التي يمكن أن تسبب مشكلة هنا:

1) نظرا لأنه هو شار (8) يمكن أن تحتوي على القيم التي لا يمكن مسبوكة إلى رقمية دون قليلا من 'تنظيف'. مثلا "اي بي سي". أو "1،234،567.00".
2) زائدة مسافات. (شار بدلا من VARCHAR).

ما الخطأ ينفورميكس لم تحصل على الزهر صريح منك (:: المال)؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top