Optimierung einer SQL-Abfrage

P.Hoffmann

Neuer User
Mitglied seit
1 Feb 2009
Beiträge
179
Punkte für Reaktionen
0
Punkte
0
Hallo,

wir benutzen derzeit eine SQL-Abfrage mit 5 Bedingungen im WHERE-Teil, allerdings beziehen diese sich alle auf der Ergebnis der Funktion

CONCAT(spalte1, spalte2, spalte3)

Gibt es eine Möglichkeit das Ergebnis einmal als Variable zu speichern und dann immer wieder abzufragen?

Beispiel:

x = CONCAT(...)

WHERE x > 10 AND x < 100 OR x ...

Hat jemand einen Tipp?

Grüße,
Philipp
 
Im Detail hängt dies stark von der Sprache ab würde ich sagen.

Generell kann man dies über einen inneren Select im From teil am effizientesten nachbauen. (DB2 Oracle)

Beispiel
Code:
Select 
a.*
b.variable

from
datatbase as a
(select variable from datatbase b where {clause}) as b

Where
b.variable = a.irgendwas

Cheers
 
Hilft Dir evtl. eine View weiter?

Code:
CREATE VIEW AS 'name der view'
SELECT .... (Abfrage wie gehabt)
Abfragen mit
Code:
SELECT * FROM 'name der view';
jo
 
Ich verwende dafür immer verschachtelte Selects, wie worryboy schon vorgeschlagen hat.

Code:
SELECT anderespalte FROM (SELECT anderespalte, CONCAT(spalte1, spalte2, spalte3) AS x FROM tabelle1) AS dynTabelle WHERE x='bla blub';

Du gibst in Deinem Beispiel an, dass Du das Ergebnis eines Concat mit < oder > Operatoren vergleichen möchtest. Das könnte Probleme mit dem Datentyp geben, ggf. CASTen.
 
Zuletzt bearbeitet von einem Moderator:

Zurzeit aktive Besucher

Keine Mitglieder online.

Statistik des Forums

Themen
246,300
Beiträge
2,249,713
Mitglieder
373,904
Neuestes Mitglied
Elemir
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.