Ich möchte ein zusätzliches WHERE
-Parameter anwenden, wenn ein bestimmter Wert angegeben wird. Wir arbeiten gerade an SAP-Hana, aber wir sind möglicherweise in der Lage, strikte Stored-Procedure-Programmierung an diese Plattform anzupassen. jede Hilfe wird sehr geschätzt! Also hier ist der Code:Bedingte WHERE-Klausel bei gespeicherten Prozeduren
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
AND LW."testVal" LIKE :testVal -- this one only, if :testVal != '*'
;
END
Was habe ich schon ausprobiert? Ich versuchte CONCAT
die SELECT
mit einer berechneten WHERE
(IF
-Conditions) und dann die EXECUTE
-Command, aber es scheint, wie SAP HANA das nicht unterstützt. Dann habe ich versucht mit CASE
innerhalb des WHERE
-Claus die Anforderungen entsprechen: WHERE ... CASE :wert <> '*' THEN ... END
Haben Sie darüber nachgedacht '... AND (LW "testval" LIKE. Testval OR: testval =‚* ")" –