Ich habe folgende Daten:
%Vor%Ich möchte den Spaltensektor aktualisieren, wenn er null ist, basierend auf dem Wert von Sektorschlüssel, dh ich möchte, dass Sektor 'A' ist, wenn Sektorschlüssel 1 ist, und 'B', wenn Sektorschlüssel 2 ist.
Ich habe diese Abfrage versucht:
%Vor%und habe folgende Fehlermeldung erhalten:
Die Tabelle 'tbFoo' ist mehrdeutig.
Ich habe versucht, den ersten tbFoo zu aliasieren, aber es scheint keine gültige Syntax zu sein. Ich verstehe nicht, warum SQLServer sich über eine mehrdeutige Benennung beschwert, da ich alle meine Tabellen Aliasing habe.
Ich habe gefunden this thread , und ich habe das Gefühl, dass ich genau das Gleiche mache wie in der uploated-Antwort. Ich habe auch versucht, die Abfrage in der angenommenen Antwort vorgeschlagen:
%Vor%und dann klagt SQLServer über eine falsche Syntax in der Nähe von 'A'
Irgendwelche Ideen, was passiert, und um das zu beheben? Ich benutze SQLServer 2008.
BEARBEITEN Ich habe die Gesamtdaten meiner Tabelle nicht angezeigt. Ich habe nicht nur zwei Fälle (A und B), sondern einige tausend Fälle. Ein expliziter Fall ist also keine Option
Verwenden Sie den Alias im ersten Teil Ihrer Aktualisierungsabfrage:
%Vor%Andernfalls weiß es nicht, welche Instanz der Tabelle aktualisiert werden soll.
Versuchen Sie ein CTE zu verwenden und ändern Sie den Namen des Feldes für Alias:
%Vor%Tags und Links sql sql-server sql-server-2008