![]() |
Datenbank: MS SQL 2000 • Version: 2000 • Zugriff über: Ado
Datenbankabfrage, mit Vergleich in der Rückgabe
Ich will folgende Abfrage machen:
SQL-Code:
select Str.Name, str.Von = a From Strassen Str where
... AND ((str.Von = a) OR (str.Bis = a)) Die Abfrage ist ein wenig komplizierter. Jedenfalls gibt es einen 'ODER' Teil mir sagt, ob es Von bzw. Bis Straße ist. Dies will ich in der Rückgabe einfach als Wahrheitswert haben. Alternativ könnte ich: 2 Abfragen machen (Mehraufwand im Programm, DBS muss Tabelle 2x durchsuchen) 1 Abfrage mit Union (DBS muss Tabelle 2x durchsuchen) 1 Abfrage und Rückgabe von str.Von und a zum Vergleich im Programm (Mehraufwand im Programm, mehr Traffic) Optimal: 1 Abfrage wie ich sie oben eigentlich machen wollte :/ Wie kann ich das Problem am besten lösen? |
Re: Datenbankabfrage, mit Vergleich in der Rückgabe
-iif()/if()
-case ... when |
Re: Datenbankabfrage, mit Vergleich in der Rückgabe
Hallo,
habe Deine Frage nicht ganz verstanden, Du willst in den Spalten des Selects eine haben, aus der hervorgeht, ob nun str.Von gleich a ist, oder ob str.Bis gleich a ist. Das solltest Du mit Case when hinbekommen. Ungetestet in etwa sowas:
SQL-Code:
wenn Du nun WerIstA auf 1 abfragst, dann stimmt str.von mit a überein, wenn Du WerIstA auf 2 abfragst, dann stimmt str.bis mit a überein, 0 heißt keine Übereinstimmung.
CASE str.von
WHEN a THEN 1 ELSE CASE str.bis WHEN a THEN 2 ELSE 0 END END as WerIstA, |
Re: Datenbankabfrage, mit Vergleich in der Rückgabe
Delphi-Quellcode:
Als Ergebnis bekommst Du in Spalte 2 entweder eine '1! wenn die Strasse VON ist oder eine '0' wenn die Strasse BIS ist.
SELECT Str.Name,
CASE WHEN a = Str.Von THEN 1 ElSE 0 END as Von FROM Strassen Str WHERE ... AND ((str.Von = a) OR (str.Bis = a)) Edit: ROTER KASTEN, aber ich poste es trotzdem Grüße Thomas |
Re: Datenbankabfrage, mit Vergleich in der Rückgabe
Ja danke das wars :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:31 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 by Thomas Breitkreuz