Хотел я попробовать кое что ускорить. Ну и наткнулся что когда пишу что-то типа


SELECT RFI.* FROM "RssFeedItems" RFI
RIGHT JOIN (
  SELECT FI.RDB$DB_KEY AS "DbKey"
    FROM CONVERT_STRING_TO_ROWSET('1;2;3') DATA
    JOIN "RssCacheElements" RCE ON RCE."FeedDefinitionId" = DATA.ROW
    JOIN "RssFeedItems" FI ON FI."FeedId" = RCE."RssFeedId"
    WHERE FI."Id" IS NOT NULL
    ORDER BY FI."PubDate" DESC, FI."Title"
) DT ON DT."DbKey" = RFI.RDB$DB_KEY


то мне сервер заявил:

Column unknown.
FI.DB_KEY.
At line 3, column 13.


Хотя тот же derived table успешно компилится в таком виде:


SELECT * FROM (SELECT FI.RDB$DB_KEY AS "DbKey"
    FROM CONVERT_STRING_TO_ROWSET('1;2;3') DATA
    JOIN "RssCacheElements" RCE ON RCE."FeedDefinitionId" = DATA.ROW
    JOIN "RssFeedItems" FI ON FI."FeedId" = RCE."RssFeedId"
    WHERE FI."Id" IS NOT NULL
    ORDER BY FI."PubDate" DESC, FI."Title")


Там какие-то ограничения есть в Derived tabled + DB_KEY или просто не работает?

Ответить