--FUNCTION
--[回傳單個值]輸入年齡會回傳小於等於這年齡之中年紀最大的人的名字
--CREATE後會在資料庫→可程式性→純量值函式中看到
USE sqltest
GO
ALTER FUNCTION RequestAge
(
@age INT
)
RETURNS varchar(50)
AS
BEGIN
DECLARE @name varchar(50)
SET @name=
(
SELECT TOP 1 name
FROM Table_1
WHERE age < @age
ORDER BY age DESC
)
RETURN @name
END
GO
SELECT dbo.RequestAge('30')
--[回傳TABLE]輸入年齡會回傳小於等於這年齡的人的資料(名字性別生日年齡)
--CREATE後會在資料庫→可程式性→資料表函式中看到
USE sqltest
GO
ALTER FUNCTION RequestTable
(
@age INT
)
RETURNS @table TABLE
(
name varchar(50),
sex BIT,
birthday DATETIME,
age INT
)
AS
BEGIN
INSERT INTO @table(name,sex,age,birthday)
SELECT a.name,b.sex,a.age,c.birthday
FROM Table_1 a
LEFT JOIN Table_2 b
ON a.name=b.name
LEFT JOIN Table_3 c
ON a.name=c.name
WHERE age < @age
RETURN
END
GO
SELECT * FROM RequestTable('30');
下一篇:基本語法練習題4_預存程序篇
留言列表