استعلام Oracle SQL، قم بتسلسل الملفات مع قسم الحالة

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

سؤال

أقوم حاليًا بإنشاء عبارات إدراج SQL من أكثر من جدول واحد، وفي البيانات التي تم إنشاؤها أحتاج إلى استخدام عبارة CASE، مثل هذا:

select 'INSERT INTO TABLE1 (f1, f2, f3, f4 ...) values ('
       ||t.f1||','
       ||CASE
             WHEN t.f2 > 0 THEN '1'
             ELSE '0'
         END CASE
  from table2 t , table3 t3

ولكن في هذه المرحلة إذا كنت أرغب في مواصلة بياني مع ... END CASE||','|| .... لا يمكنني تشغيل الاستعلام بعد الآن، حيث يشكو TOAD من عدم العثور على الكلمة الأساسية FROM.

كان الحل السريع هو فصل الإخراج إلى حقول، ثم حفظه في نص وتحريره، ولكن يجب أن تكون هناك طريقة أفضل.

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

المحلول

استخدم END بدلاً من END CASE

select 'INSERT INTO TABLE1 (f1, f2, f3, f4 ...) values ('
       ||t.f1||','
       ||CASE
             WHEN t.f2 > 0 THEN '1'
             ELSE '0'
         END||','||t.f2
  from table2 t , table3 t3

نصائح أخرى

في بعض المواقف المشابهة، تعمل وظيفة "فك التشفير" بشكل جيد.

قد تكون قادرًا على إطعام التعبير (T.F2> 0) في فك شفرة ، ثم ترجمة "T" إلى "1" و "F" إلى "0".

لم أحاول هذا.

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