2016-04-01 9 views
1

Wie kann ich NULL-Werte in BETWEEN-Klausel in Oracle übergeben? Wie kann ich NULL-Werte in BETWEEN-Klausel in Oracle übergeben? Wie kann ich Nullwerte in BETWEEN-Klausel in Oracle übergeben? Wie kann ich null Werte in BETWEEN-Klausel in Oracle übergeben? Wie kann ich Nullwerte in der BETWEEN-Klausel in Oracle übergeben? Wie kann ich Nullwerte in der BETWEEN-Klausel in Oracle übergeben? Wie kann ich Nullwerte in der BETWEEN-Klausel in Oracle übergeben?Wie kann ich Nullwerte in BETWEEN-Klausel in Oracle übergeben?

Antwort

1

Verwenden Sie COALESCE(). Oder brechen Sie einfach die Logik AND mit und OR:

(ap.account_payment_dat >= to_date(#Date From#, 'MM/dd/yyyy') or #Date From# is NULL) and 
(ap.account_payment_dat <= to_date(#Date To#,' MM/dd/yyyy') or #Date To# is NULL 
) and 

Hinweis: Wenn Sie vorhaben, Datumswerte in der Datenbank zu speichern, dann sollten Sie die Standardterminart verwenden, nicht Zeichen.

+1

, wenn wir eine Vermutung aus dem OP ursprünglichen Aussage zu machen, ich denke, die beiden Klammerausdrücke sollten mit 'und' verknüpft werden, so dass wir ein geschlossenen Intervall, wenn beide Argumente sind 'NOT NULL'. – dlatikay

+0

@dlatikay. . . Ich stimme dir zu. –

1

Dies wird nicht über die Syntax BETWEEN ... AND ... unterstützt.

Verwendung so etwas wie diese stattdessen:

WHERE ... 
AND (:datefrom IS NULL OR ap.account_payment_dat>=:datefrom) 
AND (:dateto IS NULL OR ap.account_payment_dat<=:dateto) 
Verwandte Themen