我有两张桌子。
---------------------------------------------------
| AltID | Alan 1| Alan 2 | Alan 3 | UserId |
---------------------------------------------------
| 1 | Opel | null | Engine | 5121 |
| 2 | Home | Garden | null | 5653 |
| 3 | null | null | null | 2133 |
---------------------------------------------------
-------------------------------------
| UserId | Kolon | NewValue |
-------------------------------------
| 2133 | Alan 1 | null |
| 2133 | Alan 2 | null |
| 2133 | Alan 3 | null |
| 5121 | Alan 1 | Brand |
| 5121 | Alan 2 | Model |
| 5121 | Alan 3 | Part |
| 5653 | Alan 1 | Place |
| 5653 | Alan 2 | Point |
| 5653 | Alan 3 | Take |
-------------------------------------
我试图得到像这样的结果
-----------------------------------------------------
| UserId | Kolon | NewValue | AltID | Deger |
-----------------------------------------------------
| 2133 | Alan 1 | null | 3 | null |
| 2133 | Alan 2 | null | 3 | null |
| 2133 | Alan 3 | null | 3 | null |
| 5121 | Alan 1 | Brand | 1 | Opel |
| 5121 | Alan 2 | Model | 1 | null |
| 5121 | Alan 3 | Part | 1 | Engine|
| 5653 | Alan 1 | Place | 2 | Home |
| 5653 | Alan 2 | Point | 2 | Garden|
| 5653 | Alan 3 | Take | 2 | null |
-----------------------------------------------------
我只是尝试做无法转移,但无法将其他表加入到它旁边。请帮助我吗?
答案 0 :(得分:1)
select a.UserId, a.Kolon, a.NewValue, b.AltID,
case a.Kolon when 'Alan 1' then [Alan 1]
when 'Alan 2' then [Alan 2]
when 'Alan 3' then [Alan 3] end Deger
from Tbl2 a
join Tbl1 b on a.UserId = b.UserId;
答案 1 :(得分:1)
如果您使用的是SQL Server 2008,那么您可以使用带有Table1
子句的CROSS APPLY
取消隐藏 VALUES
,然后加入{{1} }:
Table2