여기 내 문제가 있습니다. Microsoft SQL Server 데이터베이스 테이블에 여러 개의 열이 있습니다. (I이 테이블의 데이터 구조를 변경할 수!) 열하나의 열에서 값을 찾고 다른 열에서 값을 반환해야합니다.
- 21이 표에서 '실제'방치 '상대'방치이 테이블의 열
- 21 크기
- 크기 실제 크기 열은 열 번호를 통해 상대 크기 열을 통해 해당합니다.
는 : 입력 된 '실제'값에 기초
I 필요 (예를 ActualColumn1는 RelativeColumn1에 ActualColumn2 21까지 RelativeColumn2, 에 ActualColumnX RelativeColumnX에 대응 대응) 관련 '상대'값을 반환합니다.
다음 사례 문과 함께 필요한 부분을 관리했지만 case 문은 최대 10 개의 조건을 가지고 있으므로 내 테이블의 21 개 열을 모두 포함 할 수 없습니다. 이 문제에 접근하는 가장 좋은 방법은 무엇입니까? 내 목표는 select 문에 이것을 넣어서 상대 크기를 선택하고 내 쿼리에서 반환 할 수 있도록하는 것입니다. 나는 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
여러분의 도움에 감사드립니다!
당신은 CASE'로 둥지 case 문에 같은 뭔가가 필요하지 않을 때 (table.ActualColumn1 =을 aValue) THEN table.RelativeColumn1 CASE를 언제 (table.ActualColumn2 =을 aValue) THEN table.RelativeColumn2 ... ELSE NULL End RValue'는 시작하기가 더 쉽습니다. :-) – talegna