muszę zapytać, jak można używać aliasu w kwerendę wybierającą,Użycie aliasu Wybierz Query
muszę to
SELECT (Complex SubQuery) AS A, (Another Sub Query WHERE ID = A) FROM TABLE
muszę zapytać, jak można używać aliasu w kwerendę wybierającą,Użycie aliasu Wybierz Query
muszę to
SELECT (Complex SubQuery) AS A, (Another Sub Query WHERE ID = A) FROM TABLE
Nie można tego zrobić:
SELECT (Complex SubQuery) AS A, (Another Sub Query WHERE ID = A) FROM TABLE
Można jednak zrobić to:
SELECT (Another Sub Query WHERE ID = A.somecolumn)
FROM table
JOIN SELECT (Complex SubQuery) AS A on (A.X = TABLE.Y)
Lub
SELECT (Another Sub Query)
FROM table
WHERE table.afield IN (SELECT Complex SubQuery.otherfield)
Problem polega na tym, że nie może odnosić się do aliasów tak w klauzulach SELECT i gdzie, bo nie oceniano przez czas wybierz lub gdzie część jest wykonywana.
Można także użyć klauzuli having
, ale mając klauzule nie używaj indeksów i powinno się ich unikać, jeśli to możliwe.
?? Być może chodziło o: "WHERE ID = A.SomeColumn' –
Ty (i OP) używasz' A' jako aliasu tabeli i jako aliasu kolumny (w różnych miejscach). –
@ypercube, naprawiono teraz. – Johan
można przepisać zapytanie jak to
SELECT Complex.A, (Another Sub Query WHERE ID = Complex.A)
FROM TABLE
CROSS JOIN ((Complex SubQuery) AS A) Complex
Innym rozwiązaniem, które można wykorzystać:
SELECT (Complex SubQuery) AS A, (Another Sub Query WHERE ID = A)
FROM
TABLE MAIN
OUTER APPLY (SELECT (Complex SubQuery) AS A)
Podejrzewam, że odpowiedź jest zmienić 'wyrażenie złożone SubQuery' skalarnego w tabeli, ale wypowiedzi ciężko jest debugować kod, którego nie widzimy. – onedaywhen
Zgadzam się z Tobą. Muszę sprawić, aby ta kwerenda była wydajna. – user960567