C# 如何在where子句中使用多行?

C# 如何在where子句中使用多行?,c#,sql,where-clause,firebird,C#,Sql,Where Clause,Firebird,我正在使用Firebird数据库。 最终的目标是根据给定的大小进行旅行。 我面临的问题是给定的大小是连续的 例如,给定的大小为0.47。 然后,通过插值公式得到行程:0.47-0.45*5.0-2.5/0.5-0.45+2.5=3.5 实际上,在提取了给定大小的2行之后,我尝试用C进行计算。但我不得不抽出两行 我该如何解决这个问题。为此,我建议使用铅: TRAVEL | SIZE 0 | 0.41 2.5 | 0.45 5.0 | 0.50

我正在使用Firebird数据库。 最终的目标是根据给定的大小进行旅行。 我面临的问题是给定的大小是连续的

例如,给定的大小为0.47。 然后,通过插值公式得到行程:0.47-0.45*5.0-2.5/0.5-0.45+2.5=3.5

实际上,在提取了给定大小的2行之后,我尝试用C进行计算。但我不得不抽出两行

我该如何解决这个问题。

为此,我建议使用铅:

TRAVEL    |  SIZE
0         |  0.41
2.5       |  0.45
5.0       |  0.50
7.5       |  0.54
10        |  0.58

在Firebird的旧版本中,您可以使用相关子查询来获取下一个值。

我建议使用两个查询,而不是在一个查询中尝试这样做-一个查询将选择where size>value,另一个选择where sizeselect (case when 0.47 = size then travel else travel + (next_travel - travel) * (0.47 - size) / (next_size - size) end) as imputed_size from (select t.*, lead(size) over (order by size) as next_size, lead(travel) over (order by size) as next_travel from t ) t where 0.47 >= size and (0.47 < next_size or next_size is null);