В некоторых случаях может оказаться предпочтительнее вторая поддерживаемая форм назначения псевдонимов столбцов, которую можно считать внешней формой.
В этой форме не нужно назначать псевдонимы столбцов, следующие за выражениями в списке SELECT. Все назначаемые имена столбцов указываются в круглых скобках, следующих за именем табличного выражения. SELECT orderyear, COUNT(DISTINCT custid) AS numcusts FROM (SELECT YEAR(orderdate), custid FROM Sales.Orders) AS D(orderyear, custid) GROUP BY orderyear; GO Результат: В запросе, определяющем производную таблицу, можно ссылаться на аргументы. Аргументы могут быть локальными переменными и входными параметрами подпрограммы, такой как хранимая процедура или функция (будут рассматриваться далее). Пример: запрос, применяемый для определения производной таблицы D, ссылается на локальную переменную в элементе where. SELECT orderyear, COUNT(DISTINCT custid) AS numcusts FROM (SELECT YEAR(orderdate) AS orderyear, custid FROM Sales.Orders WHERE empid = @empid) AS D GROUP BY orderyear; GO Возможно использование вложенных таблиц. Если нужно задать производную таблицу, используя запрос, который сам ссылается на производную таблицу, это приведет к вложению производных таблиц. Вложение производных таблиц есть результат того, что производная таблица определяется в элементе from внешнего запроса, а не отдельно. Пример: возвращает годы, в которые были сделаны
SELECT orderyear, numcusts FROM (SELECT orderyear, COUNT(DISTINCT custid) AS numcusts FROM (SELECT YEAR(orderdate) AS orderyear, custid FROM Sales.Orders) AS D1 GROUP BY orderyear) AS D2 WHERE numcusts > 70; Задача самой внутренней производной таблицы, Dl, - присвоить псевдоним столбца orderyear (год заказа) выражению year (orderdate). Запрос к D2 ссылается на orderyear в элементах GROUP BY и SELECT и присваивает псевдоним столбца numcusts (количество клиентов) выражению COUNT(DISTINCT custid). Запрос к Dl используется для задания производной таблицы D2. Запрос к D2 ссылается на numcusts в элементе WHERE для того, чтобы выбрать годы, в которых более 70 клиентов сделали заказы в течение года.
Вложение порождает проблемы программирования, т. к. ведет к усложнению программного кода и затрудняет его чтение.
Читайте также: A) обоснованная, оправданная свобода или возможность поведения, которая признается в обществе Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|