Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL viele OR Verknüpfungen (https://www.delphipraxis.net/85369-sql-viele-verknuepfungen.html)

needatip 29. Jan 2007 21:33

Datenbank: MS SQL SERVER • Version: 2000 • Zugriff über: ADO

SQL viele OR Verknüpfungen
 
Hallo,

ich muss eine Abfrage mit vielen OR Verknüpfungen von Delphi zusammenbasteln lassen.
Etwa so:
Delphi-Quellcode:
with MyTable do
begin
SQL.Clear;
SQL.Add('SELECT * FROM test ');
SQL.Add('WHERE Feld1 LIKE ('%blah%');
SQL.Add('OR FELD2 LIKE ('%blah%');
SQL.Add('OR FELD3 LIKE ('%blah%');
SQL.Add('OR FELD4 LIKE ('%blah%');
SQL.Add('OR FELD5 LIKE ('%blah%');
SQL.Add('OR FELD6 LIKE ('%blah%');
.
.
.
usw.
ca. 35 Felder...

kann man die SQL Anweisung nicht zusammenfassen?
wie z. B.
SQL-Code:
SELECT * FROM test
WHERE (Feld1,Feld2,Feld3,Feld4,Feld5,Feld6......) LIKE ('%blah%');
Also irgenwas wie eine Aufzählung der Felder, die dann verglichen werden.
Bitte dringend um Hilfe.

alzaimar 29. Jan 2007 21:57

Re: SQL viele OR Verknüpfungen
 
Nein kann man nicht, das Design deiner Tabelle ist dann nicht richtig. Lagere die 35 Felder in eine separate Tabelle aus (35 Zeilen). Jede Zeile enthält neben dem Feld noch einen Verweis auf die ursprüngliche Tabelle, z.B. so:

Tabelle 1: tbID, Balbla (tbId ist der Primary Key)
Tabelle 2: dtID, tbID, Feld (dtID ist der Primary Key)

Deine Abfrage geht dann so:
SQL-Code:
select distinct t1.* 
  from Tabelle1 t1 join Tabelle2 t2 on t1.tbid = t2.tbid
where t2.Feld like 'Bla'
oder so:
SQL-Code:
select * from Tabelle1 t1
  where exists (
    select * 
      from Tabelle2 t2 
     where t2.tbid = t1.tbid and t2.Feld like 'Bla'
    )
oder oder oder.

Und wenn Du dann noch 150 Felder hinzufügen willst, kein Problem.

needatip 30. Jan 2007 07:26

Re: SQL viele OR Verknüpfungen
 
OK, Danke werd ich wohl dann so machen müssen !


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:21 Uhr.

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