-
神不在的星期二
这个查询...SELECT ID, A, B, C, [Key 1] AS key_fieldFROM tblUnpivotSourceUNION ALLSELECT ID, A, B, C, [Key 2] AS key_fieldFROM tblUnpivotSourceUNION ALLSELECT ID, A, B, C, [Key 3] AS key_fieldFROM tblUnpivotSource;...返回此记录集(使用示例表值作为tblUnpivotSource)...ID A B C key_field-- - - - --------- 1 x y z 3 2 x y z 57 1 x y z 199 2 x y z 234 1 x y z 452 2 x y z 452
-
炎炎设计
不幸的是,没有简单的方法可以通过访问来做到这一点。您可以使用UNION来获取每个值SELECT ID, A, B, C, [Key 1] As keyFROM TableWHERE [Key 1] = 3UNION ALLSELECT ID, A, B, C, [Key 1] As keyFROM TableWHERE [Key 1] = 57UNION ALLSELECT ID, A, B, C, [Key 2] As keyFROM TableWHERE [Key 2] = 199UNION ALLSELECT ID, A, B, C, [Key 2] As keyFROM TableWHERE [Key 2] = 234UNION ALLSELECT ID, A, B, C, [Key 3] As keyFROM TableWHERE [Key 3] = 452
-
DIEA
您可以创建一个以所有列名称为值的辅助表(可以使用excel将表的第一行复制到excel>粘贴特殊>转置)在表中创建一个自动增量列,并为此列编制索引创建一个新的交叉联接查询,如下所示SELECT ID, A, B, C , AUX_TABLE.KEY_FIELD , DLookUp("[" & [AUX_TABLE].[KEY_FIELD] & "]","TABLE","[ID] = " & [TABLE].[ID]) AS KEY_VALUEFROM TABLE, AUX_TABLE;不利的一面是您必须AUX_TABLE保持这种状态。但是,如果这是一次性的事情,那么这可能是一条路。