2016-03-30 20 views
0

Belirli bir değer verilirse ek bir WHERE -Parametre uygulamak istiyorum. Şu anda SAP-Hana üzerinde çalışıyoruz, ancak sıkı prosedür prosedürünü bu plattforma uyarlayabiliriz. herhangi bir yardım çok takdir edilir! Yani burada şu kodlar: Henüz denedim ne var?WHERE (IF -Conditions) hesaplanmış bir WHERE (IF -Conditions) ve -Command ile çalıştı, ancak SAP HANA bunu desteklemiyor gibi görünüyor. Sonra WHERE -Claus içinde CASE ile isteklerini karşılayabilmek için çalıştı: WHERE ... CASE :wert <> '*' THEN ... ENDKoşullu WHERE cümlesi saklı yordamlarda

+1

Eğer 'düşündünüz mü belgeler ... VE (LW kaplı "TestVal" GİBİ edilir. TestVal VEYA: TestVal = '* ')' –

cevap

1
AND (LW."testVal" LIKE :testVal OR :testVal = '*') 
0

Neden tam olarak APPLY_FILTER işlevini kullanamıyorum?

PROCEDURE test (
    IN id integer, 
    IN testVal VARCHAR(20) DEFAULT '', 
    out ex_return DB-SCHEME  
) 
LANGUAGE SQLSCRIPT 
SQL SECURITY INVOKER 
--DEFAULT SCHEMA <default_schema_name> 
READS SQL DATA AS 
BEGIN 

ex_return = 
    SELECT 
     L."ID", 
     LW."ID" 
    FROM DB1 L 
     INNER JOIN DB2 LW 
      ON L."id" = LW."id" 
    WHERE 
      L."id" = :id; 

ex_filtered = APPLY_FILTER (:ex_return, :testVal); 

END; 

Değişken testVal'de artık tüm durumu sağlayabilirsiniz, örn.

call test (1, ' "testVal" like ''%ABC%'' '); 

Tüm bu http://help.sap.com/saphelp_hanaplatform/helpdata/en/a0/9d584807f84477a64d7625ca45b089/content.htm?frameset=/en/a9/4461d71e8145a78d990deac4823858/frameset.htm&current_toc=/en/ed/4f384562ce4861b48e22a8be3171e5/plain.htm&node_id=73

  • Lars