c# - 如果找不到我输入的记录,如何在 SQL 中找到下一个更大的可用记录

标签 c# sql linq

下一个是mytable

Part Number     Voltage Amp HP
MMX34AA014F0-0      480 14  10
MMX34AA016F0-0      480 16  10
DC1-34018FB-A20N    480 18  10

我想在我的数据库中搜索一条记录,例如 HP = '10' And [Amp ]= '14' 它应该给我 MMX34AA014F0-0 就可以了

但是如果 HP = '10' 并且 [Amp ]= '13' 它应该给我 MMX34AA014F0-0 这个

Part Number     Voltage [Amp]   HP
MMX34AA014F0-0  480 14  10

如果 HP = '10' 并且 [Amp ]= '15' 它应该给我 MMX34AA016F0-0 这个

Part Number     Voltage  [Amp]  HP
MMX34AA016F0-0  480 16  10

我该怎么做? 因为我这样做是检索所有大于我输入的 Amp 的记录,而我真正想要的是,如果找不到我在 [amp] 变量中输入的值,则搜索下一个大于我输入的一个

最佳答案

这将为您提供所需的内容,其中 @hp 是您的 hp 变量,@amp 是您的 amp 变量。

SELECT * 
FROM mytable
WHERE [HP] = @hp
   AND [AMP] = (SELECT MIN([AMP]) FROM mytable WHERE [HP] = @hp AND [AMP] >= @amp)

关于c# - 如果找不到我输入的记录,如何在 SQL 中找到下一个更大的可用记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28197237/

相关文章:

C# out参数问题: How does Out handle value types?

c# - 在 WndProc 中未获取 Windows 8 WM_POINTER* 事件

php - 从php函数中的选择查询中获取结果

wpf - 如何将 WPF TreeView HierarchicalDataTemplate 与 LINQ to Entities 一起使用?

c# - 将 GUID 转换为字符串 Entity Framework

c# - 如何绘制包含负点的多边形?在 C#

c# - C# MVC3 中的复杂 URL

c# - 有人可以解释这个异常(exception)的含义吗?连接字符串、表名、查询语法正确

c# - SQL Server 存储过程结果返回

c# - 将 List<string[]> 展平为单个字符串,每个元素一行