Inline table function
我在 SQL Server 2008 R2 中创建了一个,我意识到一些查询返回任何记录。所以我想当这种情况发生时,返回一个包含所有空列的记录。
举例:
Col1 Col2 Col3
NULL NULL NULL
更新:这是功能
ALTER FUNCTION [dbo].[GetWorksheetSummaryByObjective](@objectiveId [smallint], @testTemplateId [smallint])
RETURNS @resultTable TABLE (
[AnsweredWorksheetId] [smallint] NOT NULL,
[LastDate] [date] NULL,
[BestScore] [smallint] NULL,
[ShouldBeMakeUp] [tinyint] NOT NULL
)
AS
BEGIN
INSERT @resultTable
SELECT TOP 1 B.Id AS AnsweredWorksheetId, A.Date, CONVERT(smallint, B.Score * 100),
CASE
WHEN B.Score >= 0.7 THEN 0
ELSE 1
END AS ShouldBeMakeUp
FROM AnsweredTest AS A
RIGHT JOIN AnsweredWorksheet AS B ON (A.Id = B.AnsweredTestId)
WHERE B.ObjectiveId = @objectiveId AND A.ExamTemplateId = @testTemplateId
ORDER BY B.Score DESC
RETURN
END