ほとんどのシステムでは、ユーザー定義関数 (UDF) を使用できます。しない人もいます。UDF がある場合はそれを使用したい:
SELECT
Users.*,
dbo.UserGroupMembershipNames(Users.UserID) AS MemberOfGroupNames
FROM Users
それ以外の場合は、許容可能な代替手段にフォールバックします
SELECT
Users.*,
(SELECT TOP 1 thing FROM Something
WHERE Something.ID = Users.UserID) AS MemberGroupNames
FROM Users
どうやって?
もちろん、明白な解決策を使用した私の最初の試みは失敗しました:
SELECT
Users.*,
CASE
WHEN (OBJECT_ID('dbo.UserGroupMembershipNames') IS NOT NULL) THEN
dbo.UserGroupMembershipNames(Users.UserID)
ELSE (SELECT TOP 1 thing FROM Something
WHERE Something.ID = Users.UserID)
END AS MemberOfGroupNames
FROM Users
私を超えた理由で