【发布时间】:2011-11-13 00:23:38
【问题描述】:
我有一个这样的表(简化):
Lender
Id (PK)
AgencyCode1
AgencyCode2
AgencyCode3...
AgencyCode20
Agency
AgencyCode
AgencyName
贷方表是来自报告视图的非规范化数据。对于每个贷方,我的输出中需要一行,并且我需要将代理代码加入代理表以获取每个代理的显示名称。
我在每一行中寻找的结果输出是:
LenderId, AgencyCode1, AgencyName1, ... AgencyCode20, AgencyName20
在查询此类内容时,在性能和(开发人员)生产力之间取得最佳平衡的模式是什么?
--编辑,机构代码不是主键,正如我最初指出的那样。
【问题讨论】:
-
UNPIVOT然后PIVOT我想。 -
但是你有使用这个视图吗?
-
我差不多。它是存储在表中的已处理数据,用于导出。表格/视图比我在示例中提供的要多得多。
-
Pivot 和 Unpivot 是标准 SQL 的一部分吗?如果我可以将它们作为我武器库的长期组成部分,我会更倾向于使用它们。
-
不知道。如果没有,可以使用
CASE轻松复制 Pivot。UNPIVOT可以模拟,但效率不高。
标签: sql sql-server tsql join denormalization