Я пытаюсь получить результаты для подобного запроса на Microsoft SQL Server:SQL Server: наличие и где пункты для имен столбцов, выбранных с «как»
SELECT
A, B, C AS DANUMBER
FROM
TABLE
WHERE
B = 'SOMEVALUE'
HAVING
DANUMBER > 0
Однако, я не могу использовать столбец I выбрали с помощью «AS» в SQL Server. DANUMBER просто неизвестен серверу.
Каждый пример, который я искал, информирует о показе агрегатных функций, ничто не решило мою проблему. Этот запрос работает на mySQL, но не на SQL Server.
Я думаю, что может быть не хватает какой-то синтаксис или что-то ...
Довольно, что он не работает в Postgres. Этот синтаксис не может работать разумно в любой СУБД, которая реализует функции окна, поскольку псевдоним может ссылаться на выражение, вычисленное после 'наличия'. –
О, мой бог. Я не хотел повторять выражение, думая, что оно переработает операцию, потому что это паранезия с некоторой нагрузкой в ней. но по мере того, как объясняется ваше объяснение, кажется, что выбора нет: -/ – cenk
Имея в виду, что после того, как предложение where и объединения выполняются, любые результаты фильтруются, чтобы узнать, передают ли они условие, заданное условием having. Часто используется в запросе count или sum, где вы хотите видеть только результаты, которые больше, чем какое-либо условие. Использование наличия в приведенном вами примере не имеет смысла. Вы хотите где-то с предложением и. –