sql - 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”。
解决方案
我认为你可以做你想做的事情ORDER BY
和TOP
:
SELECT TOP 1 *
FROM Contas
ORDER BY IIF(Dia >= {Dia_Atual_LB}, 1, 2), -- current/future days first
Dia;
推荐阅读
- tensorflow - 尝试将 GPU 用于 Tensorflow 时找不到各种 CUDA dll 文件
- javascript - 使用谷歌外部css时输入类型=复选框不确定状态不可视化
- python - 我该怎么做才能在烧瓶应用程序中使用 Dramatiq
- xml - 你如何将图像上传到sqlite并查看它?
- c# - WPF MVVM 绑定命令到 Datagrid 内的 Datacontext
- python - Fizzbuzz 与正常的有点不同。奇怪的错误
- python - 无法在python中打印二进制堆
- flutter - Flutter Textformfield 应该对输入和错误做出响应
- node.js - 无法使用 mongoose 在 mongodb 中增加字段
- javascript - JS keydown/keyup 交互正在阻塞其他按键效果