Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Kann LIKE auch NULL-Datensätze einschließen? (https://www.delphipraxis.net/103980-kann-like-auch-null-datensaetze-einschliessen.html)

sunny-andy 25. Nov 2007 17:04

Datenbank: Ms Sql Server • Version: 2000 • Zugriff über: Ado

Kann LIKE auch NULL-Datensätze einschließen?
 
Hallo,

ich habe für mein Programm alle Sql-Anweisungen in externe Dateien ausgelagert, da mehrere DBs unterstützt werden sollen.
Eine der Anweisung sieht folgendermaßen aus:
SQL-Code:
select * from kundenliste
where kampagne_id LIKE :kampagne_id
and ...(weitere Kriterien)
Wenn ich nun aber nicht nach "kampagne_id" filtern möchte, gebe ich als Parameter "$" an.
Bei dem Sonderfall, dass "kampagne_id" in einigen Datensätzen NULL ist, geht das natürlich nicht. Ich könnte ja auf IS NULL abfragen, aber dazu müsste ich die externe Datei ändern.
Gibt es irgendwie die Möglichkeit, einen Parameter so in die Anweisung einzusetzen, dass ich sogar NULL-Werte erhalte oder geht das nur mit IS NULL?

Dankeschön, viele Grüße
Andy

mkinzler 25. Nov 2007 17:17

Re: Kann LIKE auch NULL-Datensätze einschließen?
 
IIF, CASE

omata 25. Nov 2007 17:31

Re: Kann LIKE auch NULL-Datensätze einschließen?
 
Vielleicht so...

SQL-Code:
SELECT * 
FROM kundenliste
WHERE (   (:kampagne_id <> 'NULL' AND kampagne_id LIKE :kampagne_id)
       OR (:kampagne_id = 'NULL' AND kampagne_id IS NULL))
  AND ... (weitere Kriterien)
Gruss
Thorsten

alzaimar 25. Nov 2007 18:34

Re: Kann LIKE auch NULL-Datensätze einschließen?
 
SQL-Code:
select * from foobar where coalesce (StringField,'') Like :Filter
Es kann aber sein, das dann u.U. hier kein Index verwendet wird.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:27 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz