これが私の問題です。多数の列を含む Microsoft SQL サーバー データベース テーブルがあります。(このテーブルのデータ構造を変更することはできません!)
- この表の 21 列は「実際の」サイズを表しています
- この表の 21 列は「相対」サイズを表しています
- 実際のサイズの列は、列番号によって相対サイズの列に対応します。
(例: ActualColumn1はRelativeColumn1に対応し、ActualColumn2はRelativeColumn2に対応し、ActualColumnX から RelativeColumnXまでは 21 まで)
入力された「実際の」値に基づいて、関連する「相対」値を返す必要があります。
次の case ステートメントで必要なことの一部を行うことができましたが、case ステートメントには最大 10 個の条件があるため、テーブルの 21 列すべてをカバーすることはできません。この問題にアプローチする最善の方法は何でしょうか? 私の目標は、これを選択ステートメントに入れて、相対サイズを選択してクエリで返すことができるようにすることです。
caseステートメントで行ったことの例:
SELECT
T.AValue
CASE WHEN (T.ActualColumn1 = T.AValue) then T.RelativeColumn1 ELSE
CASE WHEN (T.ActualColumn2 = T.AValue) THEN T.RelativeColumn2 ELSE
CASE WHEN (T.ActualColumn3 = T.AValue) THEN T.RelativeColumn3 ELSE
CASE WHEN (T.ActualColumn4 = T.AValue) THEN T.RelativeColumn4 ELSE
NULL
END
END
END
END AS RValue
FROM T
ご協力ありがとうございました!