Возможно ли иметь предложение WITH внутри инструкции SELECT?
У меня есть облачный графический интерфейс в моей работе, где я могу выбрать несколько полей из разных таблиц, чтобы потом можно было распечатать значения. Я не могу написать предложение WITH перед оператором SELECT, так как программа сначала автоматически пишет SELECT. Поэтому я хочу знать, возможно ли это как-то.
2 ответа
Если вы не можете найти другой способ обойти это, этот графический интерфейс может быть убежден принять
SELECT * FROM (
-- write your entire select statement here
);
Да, вы можете, согласно документации MSDN ( https://msdn.microsoft.com/en-us/library/ms189499.aspx):
<SELECT statement> ::=
[WITH <common_table_expression> [,...n]]
<query_expression>
[ ORDER BY { order_by_expression | column_position [ ASC | DESC ] }
[ ,...n ] ]
[ <FOR Clause>]
[ OPTION ( <query_hint> [ ,...n ] ) ]
<query_expression> ::=
{ <query_specification> | ( <query_expression> ) }
[ { UNION [ ALL ] | EXCEPT | INTERSECT }
<query_specification> | ( <query_expression> ) [...n ] ]
<query_specification> ::=
SELECT [ ALL | DISTINCT ]
[TOP ( expression ) [PERCENT] [ WITH TIES ] ]
< select_list >
[ INTO new_table ]
[ FROM { <table_source> } [ ,...n ] ]
[ WHERE <search_condition> ]
[ <GROUP BY> ]
[ HAVING < search_condition > ]