入力パラメーターに基づいて多数のテーブルの 1 つに対してチェックを実行する SQL の関数があります。例えば
CREATE FUNCTION demo
(
@Classification INT,
@ClassificationValue INT
)
RETURNS INT
AS
BEGIN
IF @Classification = 1
BEGIN
IF EXISTS (SELECT CountryRegionId FROM table_1 WHERE id = @ClassificationValue)
BEGIN
RETURN 1;
END
END
IF @Classification = 2
BEGIN
IF EXISTS (SELECT CountryRegionId FROM table_2 WHERE id = @ClassificationValue)
BEGIN
RETURN 1;
END
END
RETURN 0;
END
これは単純化された状況であり、実際には選択できるターゲット テーブルが他にもあります。
私の質問
C# または他のほとんどの言語では、ハッシュが使用されるため、連続する if ステートメントよりも switch ステートメントを使用する方が適切です。これは SQL でも同じですか (case ステートメントに論理式を含めることができる場合、たとえば Case When a <5 - 明らかにハッシュできません。