首页 > 解决方案 > if 语句 SQL 日期间隔

问题描述

我需要在表格'Contas'中找到下一张账单(账单日:5、15、25、28),问题是如果我们在第 30 天,'NEXT' 语句将找不到任何东西,它应该返回' 5'。

我试过这个没有成功

$"IF EXISTS (SELECT * FROM Contas WHERE Dia >= {Dia_Atual_LB}) SELECT * FROM Contas WHERE Dia >= {Dia_Atual_LB} ELSE SELECT * FROM Contas WHERE Dia >= 0"

它返回:

System.Data.OleDb.OleDbException: '无效的 SQL 语句;预期为“DELETE”、“INSERT”、“PROCEDURE”、“SELECT”或“UPDATE”。

标签: sqlvb.netms-access

解决方案


我认为你可以做你想做的事情ORDER BYTOP

SELECT TOP 1 *
FROM Contas
ORDER BY IIF(Dia >= {Dia_Atual_LB}, 1, 2),  -- current/future days first
         Dia;

推荐阅读