Mysql 在access数据库(SQL)中选择第n个值
我试图在Access数据库中选择特定的值。 因此,数据库包含许多列,我只能选择第一个值或最后一个值:Mysql 在access数据库(SQL)中选择第n个值,mysql,ms-access-2010,nth-element,Mysql,Ms Access 2010,Nth Element,我试图在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能够识别第三
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)可以实现此目的: *下面的查询可能有用
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
谢谢你的回复,
我忘记指定的是,我实际上没有尝试列中的第n个单元格;它更多的是获取特定列中包含的第n个值。
例如,以下表为例
Column1 Column2 Column3
A1 Prop1 20
A1 Prop1 20
A2 Prop2 15
A2 Prop1 20
A3 Prop2 15
A3 Prop3 5
A3 Prop3 5
A4 Prop1 20
A4 Prop2 15
A4 Prop3 5
A4 Prop4 10
因此,我想为每个column1id从第2列中选择第n个值,以便获得
第一个要素:
Column1 Column2 Column3
A1 Prop1 20
A2 Prop1 20
A3 Prop2 15
A4 Prop1 20
对于第二个元素:
Column1 Column2 Column3
A2 Prop2 15
A3 Prop3 5
A4 Prop2 15
第四项:
Column1 Column2 Column3
A4 Prop4 10
希望这是有意义的您在任何显示的查询中都没有orderby。如果
orderby
缺少first(),则第三个()或第n个()将导致一个无意义的值,这是因为如果未指定,sql查询(也在access中)不会保证顺序。旁注:第三个()和第n个()不存在
Column1 Column2 Column3
A4 Prop4 10