最終スコアを計算するために使用されるSQLを生成しようとしています->学校の子供たちと年末のスコアを考えてください。
単純な値 (現在のスコア、サブジェクト ID など) を受け取り、10 進数値を吐き出す、約 5 つほどのスカラー UDF を用意する予定でした。
例えば。
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 を選択しません。
それで、これはパフォーマンスに関して大丈夫ですか?