Ich erhalte einen Fehler "ungültiger Spaltenname 'FirstPart'", wenn ich eine linke Verbindung mache.SQL ungültiger Spaltenname
weiß, dass ich meine Spalte ein Alias ist, aber ich bin nicht sicher, was zu tun ist:
SELECT
h.Type,
a.name,
CASE
WHEN a.name LIKE '%-%'
THEN LEFT(a.name, CHARINDEX('-', a.name) - 1)
ELSE a.name
END as FirstPart,
CASE
WHEN a.name LIKE '%-%'
THEN RIGHT(a.name, CHARINDEX('-', Reverse(a.v)) - 1)
END as LastPart
FROM
Table1 a
LEFT JOIN
Table2 h ON a.FirstPart = h.ID
Entweder wiederholen Sie den Ausdruck oder zieht es in einer Unterabfrage – Siyual
Wenn Sie die T-SQL-logische Verarbeitungsreihenfolge zu verstehen (https://stackoverflow.com/questions/3270338/confused-about-itzik-ben-gans-logical-query-processing-order-in-his-sql-server), Sie werden verstehen, warum Sie das Problem in der haben erster Platz, dh Sie können in der FROM-Klausel (die JOINs enthält) keinen Alias (in der SELECT-Klausel) verwenden. – jyao