表值函數函數
定義表值函數spa
1 --定義表值函數 2 CREATE FUNCTION GetStuScore(@Stu_ID INT ) 3 RETURNS TABLE 4 AS RETURN 5 (SELECT 6 MAX('學生'+CONVERT(NCHAR(10),[Stu_ID])) AS 學生 7 ,MAX(CASE WHEN Course='語文' THEN ISNULL(Score,0) ELSE 0 END) AS 語文成績 8 ,MAX(CASE WHEN Course='數學' THEN ISNULL(Score,0) ELSE 0 END) AS 數學成績 9 ,MAX(CASE WHEN Course='英語' THEN ISNULL(Score,0) ELSE 0 END) AS 英語成績 10 ,CONVERT(DECIMAL(4,1),ROUND(AVG(Score),1)) AS 平均成績 11 FROM [EFDemo].[dbo].[Table_1] 12 GROUP BY Stu_ID HAVING Stu_ID=@Stu_ID)
使用表值函數code
1 --使用表值函數 2 SELECT * FROM GetStuScore(1)
標量函數blog
定義標量函數數學
1 --定義標量函數 2 CREATE FUNCTION GetScore(@Stu_ID INT,@Course NVARCHAR(10)) 3 RETURNS FLOAT 4 AS 5 BEGIN 6 DECLARE @Score FLOAT 7 SELECT @Score=Score FROM dbo.Table_1 WHERE Stu_ID=@Stu_ID AND Course=@Course 8 RETURN @Score 9 END
使用標量函數class
--使用標量函數 SELECT GetScore(1,'語文')