我尝试使用以下查询获取表的最后一行和下一行:
SELECT TOP 1 Nummer FROM Empfänger WHERE Nummer < 4748 ORDER BY Nummer DESC
UNION
SELECT TOP 2 Nummer FROM Empfänger WHERE Nummer >= 4748 ORDER BY Nummer ASC;
主键“Nummer”是唯一的并且是自增的,所以有
4747, 4748, 4749
它应该恕我直言返回上述数字,而是返回:
4747, 4798, 4799
当我使用 Access 打开数据库并将过滤器设置为“之间”时,值会正确显示。
我将声明更改为:
SELECT DISTINCT TOP 1 Nummer FROM Empfänger WHERE Nummer < 4748 ORDER BY Nummer DESC
UNION
SELECT DISTINCT Nummer FROM Empfänger WHERE Nummer = 4748
UNION
SELECT DISTINCT TOP 1 Nummer FROM Empfänger WHERE Nummer > 4748 ORDER BY Nummer ASC;
这几乎完美无缺。
4747, 4748, 4750
当我在单个查询中编写每个语句时,它会返回正确的值......
SELECT DISTINCT TOP 1 Nummer FROM Empfänger WHERE Nummer < 4748 ORDER BY Nummer DESC
= 4747
SELECT DISTINCT Nummer FROM Empfänger WHERE Nummer = 4748
= 4748
SELECT DISTINCT TOP 1 Nummer FROM Empfänger WHERE Nummer > 4748 ORDER BY Nummer ASC;
= 4749
\
SELECT DISTINCT TOP 1 Nummer FROM Empfänger WHERE Nummer < 4750 ORDER BY Nummer DESC
UNION
SELECT DISTINCT Nummer FROM Empfänger WHERE Nummer = 4750
UNION
SELECT DISTINCT TOP 1 Nummer FROM Empfänger WHERE Nummer > 4750 ORDER BY Nummer ASC;
我再次检查了一下,突然上面显示的查询起作用了。感谢您的帮助。