我正在尝试生成一些用于计算一些最终分数的 sql -> 想想学校里的孩子和他们的年终分数。
我将拥有大约 5 个左右的 Scalar UDF,接受一些简单的值(例如当前分数、subjectid 等),然后输出一个十进制值。
例如。
CREATE FUNCTION [dbo].[GetRatingModifier]
(
@ExamScore DECIMAL(6, 2),
@Project1Score DECIMAL(6, 2),
@Project1Score DECIMAL(6, 2),
@Project1Score DECIMAL(6, 2),
@SubjectTypeId TINYINT
)
RETURNS DECIMAL(8,5)
AS
BEGIN
DECLARE @Score DECIMAL(8,5)
SELECT @Score = (CASE @Project1Score
WHEN 1 THEN 10
WHEN 2 THEN 12.4
....) +
(CASE blah.. u get the drift)..
RETURN @Score
END
逻辑只有数学。没有从表 yyy 等中选择 xxx。
那么,在性能方面可以这样做吗?