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:
Kostenlos!

Statistik des Forums

Themen
248,920
Beiträge
2,305,111
Mitglieder
378,645
Neuestes Mitglied
nikitarajusa