Однако соз­дание табличных функций имеет свою специфику.

 

1. Оператор SELECTявляется единственной командой функции.

2. После ключевого слова RETURNS всегда должно быть ключе­вое слово TABLE. Таким образом, функция данного типа должна строго возвращать значениетипа данных table.

3. Структура возвращаемого значения типа TABLE не указывается явно при описании собственно ти­па данных. Вместо этого сервер будет автоматически использовать для возвращаемого значенияtable структуру, возвращаемую запросом SELECT.

4. Особенность функции данного типа заключается в том, что структу­ра значения table создается автоматически в ходе выполнения запроса, а не указывается явно при определении типа после ключевого слова RETURNS.

5. Возвращаемое функцией значение типа TABLE может быть исполь­зовано непосредственно в запросе, т.е. в разделе FROM.

 

Пример 2.Создать и применить функцию табличного для определения двух наименований товара с наибольшим остатком.

CREATE FUNCTIONИтог( )

RETURNS TABLE

AS

RETURN

(SELECT TOP 2 Товар.Название,

SUM(Поставки.Количество_ед_товара) - SUM(Продажи.Количество_ед_товара) AS Остаток

FROM

ТоварыINNER JOINПоставкиONТовары.ID_товара=Поставки.Товар

INNER JOINПродажи ONТовары.ID_товара=Продажи.Товар

ORDER BYОстаток DESC)

Использовать функцию для получения двух наименований товара с наибольшим остатком можно следующим образом:

 

SELECT Название FROM Итог()

 

Пример 3. Вывести список клиентов фирмы, фамилии которых начинаются с заданной буквы.

 

CREATE FUNCTION MyFunc ( @Char char)








Дата добавления: 2015-08-26; просмотров: 465;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.