русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Функции Multi-Statement


Дата добавления: 2013-12-23; просмотров: 1154; Нарушение авторских прав


RETURN

RETURNS TABLE

FROM

RETURN

AS

RETURNS TABLE

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

RETURNS TABLE

Функции Inline

DECLARE@kol INT

END

В качестве входного параметра используется дата. Функция возвра­щает значение целоготипа, полученное из оператора SELECT путем сумми­рования количества товара из таблицы Сделка. Условием отбора записей для суммирования является равенство даты сделки значению входного параметра функции.

 

Приведем фрагмент кода, в котором происходит обращение к функции пользователя: определим количество товара, поступившего за 02.02.11:

SET@kol = Пост_дата(' 02.02.11')

SELECT @kol


Создание и изменение функции этого типа выполняется с помощью команды:

 

{CREATE | ALTER} FUNCTION [владелец.] имя_функции

( [ { @имя_параметра скалярный_тип_данных [= default]) [,...n])

[ WITH {ENCRIPTION | SCHEMABINDING} [,...n] ]

[AS]

RETURN [ ( ] SELECT_onepaтор [ )]

 

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

 

 

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

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

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

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



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

 

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

CREATE FUNCTIONИтог( )

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

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

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

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

ORDER BYОстаток DESC)

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

 

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

 

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

 

CREATE FUNCTION MyFunc ( @Char char)

SELECT Фамилия, Имя, Отчество, Город

FROM Клиенты

WHERE LEFT(Фамилия, 1) = @Char;

 

Эта функция возвращает список авторов, чья фамилия начинается с определенной буквы.

 


Синтаксис команды для создания Multi-statement - функции:

CREATE FUNCTION Имя_функции

 

(Имя параметра [ AS] тип_параметра [= значение_по_умолчанию] [, … n])

 

RETURNS @возращаемая_переменная TABLE <определение_типа,_таблицы>

[ WITH [ ENCRYPTION ] | [SCHEMABIUDING] |

[ RETURNS NULL ON NULL INPUT |

CALLED ON NULL INPUT ] ]

 

[ AS ]



<== предыдущая лекция | следующая лекция ==>
DECLARE @c INT | Удаление функций


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.003 сек.