1
是否可以使用多个CASE语句来并排返回(相同的行)结果?我已阅读了许多与CASE相关的帖子,但没有看到具体解决这个问题。使用多个CASE语句
我有2个样本表: 交易
RowID TrxNo
1 12345
2 23456
3 34567
4 45678
5 56789
6 67890
7 78901
和文档
RowID TrxNo DocNo
1 12345 1
2 12345 2
3 12345 3
4 23456 1
5 34567 1
6 34567 2
7 45678 1
8 45678 2
9 56789 1
10 56789 2
11 56789 3
基于这些表,这个查询
SELECT T.TrxNo
,CASE WHEN D.DocNo = 1 THEN D.DocNo ELSE 0 END AS Doc1
,CASE WHEN D.DocNo = 2 THEN D.DocNo ELSE 0 END AS Doc2
,CASE WHEN D.DocNo = 3 THEN D.DocNo ELSE 0 END AS Doc3
FROM [dbo].[Transaction] T
LEFT OUTER JOIN
[dbo].[Document] D ON D.TrxNo = T.TrxNo
返回
TrxNo Doc1 Doc2 Doc3
12345 1 0 0
12345 0 2 0
12345 0 0 3
23456 1 0 0
34567 1 0 0
34567 0 2 0
45678 1 0 0
45678 0 2 0
56789 1 0 0
56789 0 2 0
56789 0 0 3
67890 0 0 0
78901 0 0 0
我想它返回
TrxNo Doc1 Doc2 Doc3
12345 1 2 3
23456 1 0 0
34567 1 2 0
45678 1 2 0
56789 1 2 3
67890 0 0 0
78901 0 0 0
这是我的第一篇 - 我希望的信息呈现不够清楚。
我花了很多时间试图“修复”这我想要的,没有考虑到聚合解决的方式。非常感谢您的快速,现场响应。 – twinspar 2014-10-20 11:59:17