我正在尝试选择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