Разработка и сопровождение баз данных в среде СУБД MS SQL Server 2000. Сивохин А.В - 114 стр.

UptoLike

CREATE FUNCTION Func2
(@State char(2))
RETURNS TABLE
AS
RETURN SELECT au_id, au_lname. au_fname
FROM authors
WHERE state = @State
Протестируем функцию для получения списка авторов, проживающих в штате
Калифорния:
SELECT * FROM Func2("CA") ORDER BY au_lname, au_fname
Будет получен следующий результат:
au_id аu_lname аu_fname
-------------------------- ---------------------- ------------------
409-56-7008 Bennet Abraham
238-95-7766 Carson Cheryl
427-17-2319 Dull Ann
213-46-8915 Green Marjorie
472-27-2349 Gringlesby Burt
846-92-7186 Hunter Sheryl
756-3-7391 Karsen Livia
486-29-1786 Locksley Charlene
724-80-9391 MacFeather Stearns
893-72-1158 McBadden Heather
267-41-2394 O'Leary Michael
274-80-9391 Straight Dean
724-08-9931 Stringer Dirk
172-32-1176 White Johnson
672-71-3249 Yokomoto Akiko
(15 row(s) affected)
Задание 1.9.3. Создание функции Func3 типа Multi-Statement, которая будет
принимать в качестве входного параметра строку, содержащую множество слов,
разделенных пробелами, и которая будет разбивать всю строку на отдельные
слова и каждое из них помещать в отдельную строку.
CREATE FUNCTION Func3
(@String nvarchar(500))
RETURNS @tabl TABLE
(Number int IDENTITY (1,1) NOT NULL,
Value nvarchar(30))
AS
BEGIN
DECLARE @Strl nvarchar(500),
    CREATE FUNCTION Func2
                           (@State char(2))
     RETURNS TABLE
    AS
    RETURN SELECT au_id, au_lname. au_fname
               FROM authors
               WHERE state = @State
    Протестируем функцию для получения списка авторов, проживающих в штате
Калифорния:
    SELECT * FROM Func2("CA") ORDER BY au_lname, au_fname
    Будет получен следующий результат:
    au_id                      аu_lname               аu_fname
    -------------------------- ---------------------- ------------------
    409-56-7008                Bennet                 Abraham
    238-95-7766                Carson                 Cheryl
    427-17-2319                Dull                   Ann
    213-46-8915                Green                  Marjorie
    472-27-2349                Gringlesby             Burt
    846-92-7186                Hunter                 Sheryl
    756-3-7391                 Karsen                 Livia
    486-29-1786               Locksley                Charlene
    724-80-9391               MacFeather              Stearns
    893-72-1158               McBadden                Heather
    267-41-2394               O'Leary                 Michael
    274-80-9391               Straight                Dean
    724-08-9931               Stringer                Dirk
    172-32-1176               White                   Johnson
    672-71-3249               Yokomoto                Akiko
    (15 row(s) affected)

    Задание 1.9.3. Создание функции Func3 типа Multi-Statement, которая будет
принимать в качестве входного параметра строку, содержащую множество слов,
разделенных пробелами, и которая будет разбивать всю строку на отдельные
слова и каждое из них помещать в отдельную строку.
    CREATE FUNCTION Func3
                    (@String nvarchar(500))
    RETURNS @tabl TABLE
                (Number int IDENTITY (1,1) NOT NULL,
                             Value nvarchar(30))
    AS
    BEGIN
     DECLARE @Strl n v a r c h a r ( 5 0 0 ) ,