ВУЗ:
Составители:
Рубрика:
1.9. Создание пользовательских функций
Задание 1.9.1. Создание функции Func1 типа Scalar, которая будет иметь три
входных параметра. Первые два параметра будут иметь тип данных bigint,
третий параметр — тип данных char(1) и значение по умолчанию "*".
Функция будет возвращать значение типа данных bigint и выполнять четыре
основных арифметических операции: сложение, вычитание, умножение и деление
двух значений, подаваемых на вход
функции. Операция, которую необходимо
выполнить, будет задаваться с помощью третьего параметра, который может
принимать соответственно значения " + ", " -", "*" и "/".
CREATE FUNCTION Func1(
@Varl bigint,
@Var2 bigint,
@Oper chard) = "*")
RETURNS bigint
AS
BEGIN
DECLARE @Var3 bigint
SET @Var3 =
CASE @Oper
WHEN "+" THEN @Varl + @Var2
WHEN "-" THEN @Varl - @Var2
WHEN "*" THEN @Varl * @Var2
WHEN "/" THEN @Varl / @Var2
ELSE
0
END
RETURN @Var3
END
Вызвать созданную функцию можно следующим образом
SELECT dbo.Funcl(4, 5, '+'),
dbo.Funcl(3, 7, '*') - dbo.Funcl(64, 4, '.')*2
Будет возвращен следующий результат:
9 -11
(1 row(s) affected)
Задание 1.9.2. Создание функции Func2 типа Inline, которая возвращает
список идентификационных номеров авторов, (столбец au_id), их фамилий
(столбец au_lname) и имен (столбец au_fname), живущих в определенном
штате.
1.9. Создание пользовательских функций
Задание 1.9.1. Создание функции Func1 типа Scalar, которая будет иметь три
входных параметра. Первые два параметра будут иметь тип данных bigint,
третий параметр — тип данных char(1) и значение по умолчанию "*".
Функция будет возвращать значение типа данных bigint и выполнять четыре
основных арифметических операции: сложение, вычитание, умножение и деление
двух значений, подаваемых на вход функции. Операция, которую необходимо
выполнить, будет задаваться с помощью третьего параметра, который может
принимать соответственно значения " + ", " -", "*" и " / " .
CREATE FUNCTION Func1(
@Varl bigint,
@Var2 b i g i n t ,
@Oper chard) = "*")
RETURNS bigint
AS
BEGIN
DECLARE @Var3 bigint
SET @Var3 =
CASE @Oper
WHEN "+" THEN @Varl + @Var2
WHEN "-" THEN @Varl - @Var2
WHEN "*" THEN @Varl * @Var2
WHEN "/" THEN @Varl / @Var2
ELSE
0
END
RETURN @Var3
END
Вызвать созданную функцию можно следующим образом
SELECT dbo.Funcl(4, 5, '+'),
dbo.Funcl(3, 7, '*') - dbo.Funcl(64, 4, '.')*2
Будет возвращен следующий результат:
9 -11
(1 row(s) affected)
Задание 1.9.2. Создание функции Func2 типа I n l i n e , которая возвращает
список идентификационных номеров авторов, (столбец au_id), их фамилий
(столбец a u _ l n a m e ) и имен (столбец au_fname), живущих в определенном
штате.
Страницы
- « первая
- ‹ предыдущая
- …
- 111
- 112
- 113
- 114
- 115
- …
- следующая ›
- последняя »
