表字段如下:
Id orderId val1 BNo
1 1 2 1
2 1 5 2
3 2 6 1
4 2 5 2
....
希望得到视图
orderId val1 BNo NorderId Nval1 NBNo
1 2 1 1 5 2
2 6 1 2 5 2也就是一个OrderId下面有两条记录,根据编号BNO区分,我想通过视图将其合并为一条记录,因为我要用OrderId与别的表进行关联,我希望针对一个OrderId只有一条记录!
Id orderId val1 BNo
1 1 2 1
2 1 5 2
3 2 6 1
4 2 5 2
....
希望得到视图
orderId val1 BNo NorderId Nval1 NBNo
1 2 1 1 5 2
2 6 1 2 5 2也就是一个OrderId下面有两条记录,根据编号BNO区分,我想通过视图将其合并为一条记录,因为我要用OrderId与别的表进行关联,我希望针对一个OrderId只有一条记录!
--建立測試環境
Create Table TEST
(Id Int,
orderId Int,
val1 Int,
BNo Int)
--插入數據
Insert TEST Select 1, 1, 2, 1
Union All Select 2, 1, 5, 2
Union All Select 3, 2, 6, 1
Union All Select 4, 2, 5, 2
GO
--建立視圖
Create View List
As
Select
orderId,
Max(Case BNo When 1 Then val1 End) As val1,
max(Case BNo When 1 Then BNo End) As BNo,
orderId As NorderId,
Max(Case BNo When 2 Then val1 End) As Nval1,
Max(Case BNo When 2 Then BNo End) As NBNo
from TEST
Group By orderId
GO
--測試
Select * from List
GO
--刪除測試環境
Drop Table TEST
Drop View List
--結果
GO
/*
orderId val1 BNo NorderId Nval1 NBNo
1 2 1 1 5 2
2 6 1 2 5 2
*/