كيفية القيام NVL (أو فك أو كيس) بيانا خلال الاستعلام ينفورميكس SE SQL؟

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

  •  22-07-2019
  •  | 
  •  

سؤال

وIBM واضحة جدا على موقعه ينفورميكس محرك الموحدة، أنه لا يدعم كلا الحالين ولا DECODE. "الرجاء الترقية إلى الإصدار الجديد": <لأ href = "http://www-01.ibm.com/support/docview.wss؟rs=632&context=SSGU5Y&dc=DB560&dc=DB520&uid=swg21189712&loc=en_US&cs=UTF-8&lang= أون وآر إس إس = ct632db2 "يختلط =" نوفولو noreferrer "> http://www-01.ibm.com/support/docview.wss؟rs=632&context=SSGU5Y&dc=DB560&dc=DB520&uid=swg21189712&loc=en_US&cs=UTF-8&lang=en&rss=ct632db2

ووسوف يحدث أبدا!

وهكذا ربما شخص ما يمكن أن يكون فكرة. أريد أن يكون ما يعادل:

<اقتباس فقرة>   

حدد NVL (C1، C2) من MyTable

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

المحلول

CREATE PROCEDURE NVL(a CHAR(32), b CHAR(32) DEFAULT NULL,
                                 c CHAR(32) DEFAULT NULL,
                                 d CHAR(32) DEFAULT NULL,
                                 e CHAR(32) DEFAULT NULL,
                                 f CHAR(32) DEFAULT NULL,
                                 g CHAR(32) DEFAULT NULL)
   RETURNING CHAR(32);
   IF   a IS NOT NULL THEN RETURN a;
   ELIF b IS NOT NULL THEN RETURN b;
   ELIF c IS NOT NULL THEN RETURN c;
   ELIF d IS NOT NULL THEN RETURN d;
   ELIF e IS NOT NULL THEN RETURN e;
   ELIF f IS NOT NULL THEN RETURN f;
   ELSE                    RETURN g;
   END IF;
END PROCEDURE;

وأو - أقل عموما:

-- @(#)$Id: nvl_int.spl,v 1.1 1996/08/26 18:33:11 johnl Exp $
--
-- nvl_integer: return v1 if it is not null else return v2

CREATE PROCEDURE nvl_integer(v1 INTEGER, v2 INTEGER DEFAULT 0)
    RETURNING INTEGER;

    DEFINE rv INTEGER;

    IF v1 IS NOT NULL THEN
        LET rv = v1;
    ELSE
        LET rv = v2;
    END IF

    RETURN rv;

END PROCEDURE;

والنسخة CHAR يمكن استخدامها في أي نوع تقريبا (باستثناء سلاسل أطول من 32، كما هو مكتوب) لSE هو جيد جدا في تحويل بين أنواع. SE لا يدعم الصب واضح، إما - أنه من الأسلم أن نفترض أن SE ليس لديها الكثير من SQL الماضي SQL-89

نصائح أخرى

إذا كان لديك نظرة على IIUG الموقع في منطقة التحميل، كنت 'ليرة لبنانية العثور على مجموعة من الروتين الاسكتلندي هناك لمحاكاة هذه الوظائف وغيرها. واحد معين كنت بعد هو جمع يسمى "orclproc".

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