mytable是下一个
Part Number Voltage Amp HP
MMX34AA014F0-0 480 14 10
MMX34AA016F0-0 480 16 10
DC1-34018FB-A20N 480 18 10
我想在我的Db中搜索记录,例如HP =' 10'并且[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]变量中输入的值未找到,则搜索大于一个我进入
答案 0 :(得分:3)
这将为您提供所需内容,其中@hp是您的hp
变量,而@amp是您的amp
变量。
SELECT *
FROM mytable
WHERE [HP] = @hp
AND [AMP] = (SELECT MIN([AMP]) FROM mytable WHERE [HP] = @hp AND [AMP] >= @amp)
答案 1 :(得分:1)
在microsoft t-sql中,我做过类似的事情:
select top 1 * from table t1 where t1.value >= 10 order by value
(如果它在那里会返回10,但是如果表中没有10个则给我11,12,13等。)
我认为你可以用mySQL中的“limit”命令做类似的事情,因为“top”是一个MS t-sql命令。