보기에서 테이블을 unpivoting하면 많은 선택 쿼리에 대해 장기적으로 테이블 디자인을 극복하는 데 도움이 될 것이라고 생각합니다. (특히 누군가가
CREATE VIEW UnpivotedTable AS
SELECT
ID, Mode, ModeId
FROM
TableToJoin
UNPIVOT (ModeId FOR mode IN (Mode1,Mode2,Mode3,Mode4,Mode5)) AS t
GO
조회에 다음 오히려 "고전"PIVOT 쿼리가 될 것이다 (하지만 그건 정말 내 대답의 요점이 아니다
. unpivotting보기 :-) 여섯 번째 모드를 addd하는 천재 생각을 가지고 때 is)
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
희망이 있으면 장기적으로 도움이 될 것입니다. 늦게 답변을 드려 죄송합니다
출처
2012-11-19 09:27:44
jbl
예제 입력 및 출력을 고려하십시오. –
DB가 Join Table이 아니라 왜 이렇게 설계 되었습니까? – Shmiddty
물어 보지 마시고, 감독관이 저에게 강요하도록 강요했습니다. 우리는 그것을 수정할 시간이 없다. 나는 그 디자인을 원래 가지고 있었다. – xivo