SQL - ينفورميكس - تغيير نوع البيانات من عمود من رقمية إلى شخصية

StackOverflow https://stackoverflow.com/questions/533879

  •  22-08-2019
  •  | 
  •  

سؤال

ولدي جدول مؤقت الذي لديه قيم الأعداد الرقمية في عمود واحد. أريد أن إما استبدال قيم الأعداد مع القيم الشخصية على أساس بعض المعايير أو أريد أن أضيف عمود آخر من نوع الحرف الذي يدرج تلقائيا القيم في حد ذاته على أساس بعض المعايير.

وإذا كانت x <= 1، وتغير إلى "SP" أو جعل عمود جديد ومخزن "SP" في الصف <ر> إذا كان x> 1، وتغير إلى "الاتحاد" أو جعل عمود جديد ومتجر "الاتحاد" في هذا الصف

أيضا، تغيير لا يسمح الأوامر على الجداول المؤقتة في نسختي من ينفورميكس.

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

المحلول

ومعرف SELECT، سنة، CASE WHEN yr_offset <= 1 THEN "SP" ELSE "FA" END حالة

<وأ href = "http://publib.boulder.ibm.com/infocenter/idshelp/v10/index.jsp؟topic=/com.ibm.sqls.doc/sqls909.htm" يختلط = "نوفولو noreferrer "> http://publib.boulder.ibm.com/infocenter/idshelp/v10/index.jsp؟topic=/com.ibm.sqls.doc/sqls909.htm

نصائح أخرى

وأنت الصحيح، لا يمكنك تغيير جدول مؤقت. إضافة عمود إضافي مع هذه القيمة المستمدة يمكن القيام به مع بيان CASE، أي:

SELECT enroll.ud, enroll.yr, (CASE
   WHEN enrollsess.yr_offset <=1 THEN "FA"
   ELSE "SP" END)::CHAR(2) AS sess, ...

ووالصب (أي الأقواس و::CHAR(2)) وربما ليست ضرورية.

إذا يمكن التعبير عن منطق صفر / غير صفرية (انها ليست واضحة في سبيل المثال إذا yr_offset يمكن أن يكون سلبيا)، ثم انه حتى أبسط:

SELECT enroll.id, enroll.yr,
     DECODE(enrollsess.yr_offset, 0, "FA", "SP")::CHAR(2) AS sess, ...

<وأ href = "http://publib.boulder.ibm.com/infocenter/idshelp/v10/index.jsp؟topic=/com.ibm.sqls.doc/sqls909.htm" يختلط = "نوفولو noreferrer "> مزيد من التفاصيل حول تركيب كيس من دليل على

SELECT          enrollsess.id,
                enrollsess.yr,
                "SP" sess
FROM            enrollsess
WHERE           enrollsess.yr_offset <= 1
UNION
SELECT          enrollsess.id,
                enrollsess.yr,
                "FA" sess
FROM            enrollsess
WHERE           enrollsess.yr_offset > 1
INTO            TEMP enrollsess2 WITH NO LOG;
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top