Übetragen Daten von 2. Spalte in die 1. Spalte

LauraM

Ensign
Registriert
Nov. 2019
Beiträge
133
Hallo,
ich möchte nur (MSSQL ) zu meine Abfrage , die ich habe ein Case oder so einbauen, der macht folgendes:
wenn die spalte 1 =NULL und spalte 2 ist befüllt, übetrage den Betrag von Spalte 2 zu Spalte 1.

Meine Abfrage ist:
Code:
select tab1.prodnr, tab2.farbe, tab2.farbeneu

from tab1

left join tab2 on tab1.prodnr=tab2.prodnr
--hier möchte ich noch sagen, wenn farbeneu ist befüllt und farbe nicht, übetrage von Spalte farbeneu den Betrag zu Spalte farbe, also mach die Spalten umgekehrt.
Hier ein Bsp:
prodnr farbe farbe neu
12 NULL av4

Nach der Abfrage brauche ich so ein Ergebnis:
prodnr farbe farbe neu
12 av4 NULL

Könnte man so was einbauen??

Viele Grüße
Ergänzung ()

prodnrfarbefarbeneu
12NULLav4
Ergänzung ()

Es soll dann so aussehen:
prodnrfarbefarbeneu
12av4NULL
Ergänzung ()

Ich habe Case eingebaut:
Code:
select tab1.prodnr, tab2.farbe, tab2.farbeneu,
(case wehen tab2.farbe is null then tab2.farbneu else null end) as farbex
from tab1
left join tab2 on tab1.prodnr=tab2.prodnr

Aber ich bekomme dann so was:

prodnrfarbefarbeneufarbex
12NULLav4av4

An sich farbe neu soll ich NULL sein. Ich möchte den Inhalt von Farbeneu zu farbe "umziehen".

Hat jemand eine Idee?
 
Zuletzt bearbeitet:
Du kannst den Inhalt der Spalte nicht einfach ersetzen, wohl aber einen alias mit entsprechendem Namen erzeugen. Dein Case When ist schon der korrekte Ansatz. Du erzeugst halt nur eine zusätzliche Spalte, mit der kannst Du dann arbeiten.

Davon mal ab scheint mir dein Datenmodell Mist zu sein. Die Farbe ist ein Attribut an einem Produkt und nicht umgekehrt. Dazu sollte der left join eigentlich ein inner join sein.
 
Guten Morgen,

ich habe einfach Spalten umgedreht.

Danke und einen schönen Tag noch!
 
Verzeihung, gibt es möglichkeit bei der Abfrgae folgendes formulieren: wenn Spalte a = Spalte b, dann Spalte b wird auf NULL gesetzt, kann mna so was machen?
 
Zurück
Oben