helmuthelmut2000
Goto Top

Mehrere MSSQL Spalten in eine Spalte mit PHP selectieren

Hallo,

Ich habe mal wieder ein Problem wo ich gerade nicht weiter komme.
Wahrscheinlich ist das wieder ganz einfach doch ich komme mal wieder nicht
dahinter wie es geht.

Ich habe eine MSSQL2000 Tabelle mit Verschiedenen Spalten.

Saplte1 Spalte2 Saplte3 ....

Jetzt gibt es in Spalte1 und in Spalt3 einen Wert und in Spalte 2 und in Spalte3 einen Wert.
Jetzt kann ich das mit select * from Tabelle so ausgeben:

Spalte1 Saplt2 Spalte3
Wert1 Wert3
Wert2 Wert3


Ich brauch das aber so:

Spalte? Spalte3
Wert1 Wert3
Wert2 Wert3


Geht das irgendwie???

Danke.

mfG
Helmut

Content-Key: 44707

Url: https://administrator.de/contentid/44707

Printed on: April 19, 2024 at 06:04 o'clock

Member: Biber
Biber Nov 17, 2006 at 18:33:25 (UTC)
Goto Top
Moin helmuthelmut2000,

natürlich kannst Du selektierte Datenbank-Felder verbinden, ergänzen, zum Teil anzeigen, berechnete Felder hinzufügen... allerdings nicht so gut, wenn Du ein "Select * from Tabelle" abfeuerst.

Du hast doch eine "echte" Datenbank . oben steht MSSQL2000.
Leg Dir VIEWS an, die Dir die gewünschten Felder anzeigen.
Direkt auf Tabellen zugreifen oder auf 1:1-Views ist ohnehin etwas ... ungewöhnlich.

Also:
a) wenn Spalte1 und Spalte2 Textfelder sind und zusammengeschraubt werden sollen.
CREATE VIEW WasDieSehenSollen as
Select Spalte1 + Spalte2 as SpalteA,
Spalte3 as SpalteB
FROM Tabelle
-oder alternativ-
b) Wenn Spalte1 und Spalte2 Textfelder sind und Spalte2 genommen werden soll, falls Spalte1 leer/NULL ist
CREATE VIEW WasDieSehenSollen as
Select Coalesce(Spalte1, Spalte2) as SpalteA,
Spalte3 as SpalteB
FROM Tabelle
-oder alternativ-
c) Wenn es alles ein wenig länger dauert, weil der Sachverhalt komplexer ist, dann
CREATE VIEW WasDieSehenSollen as
Select 
 (case when Spalte1 IS NULL  and Spalte2 IS NOT NULL Spalte2 
          when Spalte2 IS NULL  and Spalte1 IS NOT NULL Spalte1
          when Spalte2 IS NULL  and Spalte1 IS NULL 'keine Daten'  
 else Spalte1 +Spalte2  ) als SpalteA,
 Spalte3 as SpalteB
FROM Tabelle
... usw... Varianten d) bis xyz) sind denkbar, aber kaum auf so abstrakter Ebene machbar.

Zugriff dann meinetwegen mit "Select * from WasDieSehenSollen".

Gruß
Biber
Member: helmuthelmut2000
helmuthelmut2000 Nov 18, 2006 at 21:16:42 (UTC)
Goto Top
Hallo,

Super die Idee war nicht schlecht.
Ich hab das mal so Probiert und es hat auch bis auf eine Fehlermeldung
geklappt.

Ich bekomme leider beim 2 mal wenn ich die seite aufrufe die Fehlermeldung:

In der Datenbank ist bereits ein Objekt mit dem Namen 'Testspalten' vorhanden.

klar, weil er immer wieder ein Objekt mit dem Namen Testspalten machen will.
Bei mir kommen aber immer nur neue Daten hinzu.
Wie kann ich die Fehlermeldung umgehen.
Kann ich das Objekt vorher irgendwie löschen bevohr sie wieder erstellt wird?

Gruß
Helmut
Member: Biber
Biber Nov 18, 2006 at 22:36:15 (UTC)
Goto Top
Hmmm, Helmut,

da hast Du das mit dem VIEW-Konzept etwas falsch verstanden.
Oder vielmehr, ich hab mich da wohl missverständlich ausgedrückt.

Ein VIEW ist, wie der Name sagt, eine definierte Sicht auf eine oder mehrere Tabellen.
So etwas wird einmalig angelegt und danach immer wieder benutzt - wie eine Tabelle auch.
Mit "SELECT * from viewname"

Und oben habe ich nur drei mögliche Alternativen skizzieren wollen, weil ich doch vom schönen Bremen aus nicht erkennen kann, welche vielleicht bei Dir passen könnte...

Gemeint war, dass Du Dir eine View für Deine Zwecke anlegen könntest.

Aber auch darauf kannst Du verzichten, Du kannst natürlich auch direkt mit dem oben geposteten SELECT auf Deine Tabelle zugeifen.
Lass einfach die erste Zeile "Create view viewname" weg.

Wenn Du einen VIEW wieder löschen willst, machst Du das mit dem DROP-Statement wie bei einer Tabelle auch.

Grüße
Biber
Member: helmuthelmut2000
helmuthelmut2000 Nov 19, 2006 at 01:49:23 (UTC)
Goto Top
Hallo,

Ja ich hatte da vorher einen Denkfehler.

Jetzt lege ich das Objekt gleich mit der Tabelle an, und dann mach ich da
nur einen select auf das Objekt.

Und jetzt gehts.

Danke.

Gruß
Helmut
Member: Biber
Biber Nov 19, 2006 at 01:55:58 (UTC)
Goto Top
Prima, Helmut,

dann verschiebe ich den Beitrag mal von "Entwicklung" nach Datenbanken und setze ihn auf "Gelöst" und "Geschlossen".

Gruß
Biber