КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Редактирование функций
END RETURN BEGIN Функции Multi-Statement RETURN RETURNS TABLE FROM RETURN AS RETURNS TABLE (SELECT TOP 2 Товар.Название, SUM (Поставки.Количество_ед_товара) - SUM (Продажи.Количество_ед_товара) AS Остаток Товары INNER JOIN Поставки ON Товары.ID_товара=Поставки.Товар INNER JOIN Продажи ON Товары.ID_товара=Продажи.Товар ORDER BY Остаток DESC) Использовать функцию для получения двух наименований товара с наибольшим остатком можно следующим образом:
SELECT Название FROM Итог()
Пример 7. Вывести список клиентов фирмы, фамилии которых начинаются с заданной буквы.
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 ] SQL-КОДЫ
Определение функций Multi-statement также практически полностью аналогично определению функций scalar и inline, рассмотренных ранее.
Но есть и отличия: 1. Первое отличие связано с тем, что здесь необходимо a. в отличие от функций inline и scalar - указать имя локальной переменной типа TABLE, в которой будет возвращен результат выполнения функции; b. определять тип возвращаемого значения; c. явно определить набор столбцов, которые будут применяться для хранения полученных данных. В этих функциях можно дополнительно определять индексы, ограничения целостности и т. д.
2. Второе отличие связано с завершением работы функции. Завершение работы функции происходит при выполнении команды return, однако не требуется указание значения, которое будет возвращено как результат выполнения функции. Всегда возвращается содержимое переменной типа TABLE, указанной после ключевого слова returns. Пример 777 Вывод продавцов по заданному товару и дате
Create function example11111111(@abc varchar(20), @bcd date) returns @cde table (Сотрудники varchar(20) null) as begin insert into @cde select Фамилия from Персонал inner join Продажи on Персонал.id_сотрудника = Продажи.Продавец inner join Товары on Товары.id_товара = Продажи.Товар where Товары.Название_товара =@abc and Продажи.Дата = @bcd return end
Может возникнуть необходимость внести в уже созданную функцию некоторые изменения. Для этого вы можете использовать команду alter function. Параметры и синтаксис команды alter function аналогичны команде create function, требуется лишь заменить слово create на alter.
Пример 8. Команда обновления функции: ALTER FUNCTION MyFunc (@Char char, @n int)
Дата добавления: 2013-12-13; Просмотров: 234; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |