ビュー内のテーブルのピボットを解除すると、選択クエリの多くで長期的にテーブルの設計を克服するのに役立つと思います。(特に誰かが 6 番目のモードを追加するという天才的なアイデアを持っている場合:-)
CREATE VIEW UnpivotedTable AS
SELECT
ID, Mode, ModeId
FROM
TableToJoin
UNPIVOT (ModeId FOR mode IN (Mode1,Mode2,Mode3,Mode4,Mode5)) AS t
GO
あなたのクエリはかなり「古典的な」 PIVOT クエリになります(しかし、それは私の答えのポイントではありません。非ピボットビューです)
select Id, Mode1, Mode2, Mode3, Mode4, Mode5
from (
select
Id, Mode, ModeName
from
UnpivotedTable
inner join
ReferenceTable
on ReferenceTable.ModeId = UnpivotedTable.ModeId
) as sourcetable
pivot (
max(ModeName)
for Mode in (Mode1, Mode2, Mode3, Mode4, Mode5)
) as pivotTable
これが長期的に役立つことを願っています。返事遅れてすみません