我正在尝试选择Access数据库中的特定值。
因此数据库包含许多列,我只能选择第一个值或最后一个值:

SELECT Column1, First(Column7) AS Column7_1, First(Column8) AS FirstOfColumn8, [Column1] & [Column7_1] AS [Column1&Column7]
FROM [Table1]
GROUP BY Column1;


现在,我想弄清楚的是如何获取这些列中的第n个值。完美的是,如果SQL能够识别出第三(第7列)...
我尝试了以下方法:

SELECT Column1, First(Column7) AS Column7_1, First(Column8) AS FirstOfColumn8, [Column1] & [Column7_1] AS [Column1&Column7]
FROM [Table1]
WHERE Column7 > (SELECT First(Column7) FROM [Table1]) AND Column8 > SELECT First(Column8) FROM [Table1])
GROUP BY Column1;


但是,这并不能使我到达那里。来自不同列的值不再对应。
关于我如何得到这个的任何猜测吗?
谢谢

最佳答案

AFAIK,SQL确实不支持使用上述语法按列号选择列。

类似于以下内容的方法可以解决问题(使用动态SQL):

get list of column names in given table*
for each column name
  do this
end


*以下查询可能有用!

SELECT s.NAME SchemaName,
       t.NAME TableName,
       c.NAME ColumnName
FROM   sys.columns c
       INNER JOIN sys.tables t
               ON c.object_id = t.object_id
       INNER JOIN sys.schemas s
               ON t.schema_id = s.schema_id

10-02 03:25