SQL-Abfrage Problem

web2

Cadet 4th Year
Registriert
Sep. 2005
Beiträge
91
Hallo zusammen,

Situation ist folgende. ich habe eine SQL Tabelle mit folgenden Feldern.

ID | X
2 | Schule\Res,Schule\Res2,\Schule\W12
3 | Schule\Res,Schule\Res2,\Schule\Res3\Schule\B13
4 | Schule\Res,Schule\Res2,\Schule\A23

Wie man oben sieht, entspricht die Tabelle keiner NF. Daran kann ich momentan auch nichts ändern. Das ist nicht mein Werk ;)

Meine Frage ist. Wie ich in einem SQL Statement die Spalte X soweit filtern kann, dass mir nur die Werte:
- Schule\W12
- Schule\B13
- Schule\A23

angezeigt werden. Ist das möglich? Mir fehl echt das KnowHow in SQL. Habe mal gegoogelt und einige Funktionen wie TRIM oder SUBSTR gefunden. Aber die sind meines erachtens nach in dem Fall unbrauchbar.

Wäre für jede hilfe dankbar.
 
Du könntest es mit einem RegEx versuchen.
Weiss aber nicht ob sich RegExes in SQL ausführen lassen. Zu not nimmst halt PHP ;)

Grüße

tewes
 
PHP ist in dem Fall unbraucbar. Komme nicht an den Source. Habe nur die Möglichkeit SQL-Queries zu generieren. Leider :(
 
Hi,
der Micrsoft SQl Server ist hier im Einsatz.
 
Warum brauchst du denn überhaupt dieses verkleinerte Statement ??

Für deine Lösung würde mir leider auch nur Php einfallen ....
 
PHP ist in dem Fall unbraucbar. Komme nicht an den Source. Habe nur die Möglichkeit SQL-Queries zu generieren.

Das versteh ich nicht... Du kannst SQL-Queries generieren, aber danach nicht weiterverarbeiten ?? Warum das denn nicht ?? Warum kannst du nicht mit denn großen Statements weiterarbeiten ??

Für die Lösung dines Problmes würde mir leider auch nur Php einfallen ....
 
Für Oracle tut's das hier. Vielleicht klappt's ja auch für MSSQL. Sonst schau mal nach einer Alternative für INSTR. Das -1 bei INSTR sagt btw, dass von rechts startend gesucht wird.

Code:
SELECT SUBSTR( x, INSTR( x,',',-1)+1) FROM table;

Evtl. vorher mit DECODE absichern, dass auch ein ',' vorkommt.
 
In MySQL tut es bei mir das hier:
Code:
select right(tabelle.x,locate(',',reverse(tabelle.x))-2) FROM tabelle
Das geht sicherlich eleganter, aber ich habe jetzt leider keine Zeit mehr :)

Falls es einzelne Funktionen bei MSSQL nicht gibt, gibt es aber sicherlich andersheißende Funktion mit dem selben Zweck.
 
Zurück
Oben