Select 将每列与 sqlite 中的输入进行比较后列中的最小值
Select minimum value in columns after comparing each column to an input in sqlite
我有以下 table:
质量 | C1 | C2 | C3 | C4 |
50 | 0.2 | 0.5 | 0.9 | 1.2 |
100 | 0.3 | 0.7 | 1.1 | 1.7 |
我有一个 inputX1(例如 50)和另一个 inputX2(= 0.7),我要将 inputX2 与 Qual=50 的行的每一列进行比较。所以首先我们得到:
质量 | C1 | C2 | C3 | C4 |
50 | 0.2 | 0.5 | 0.9 | 1.2 |
我想在将 inputX2=0.7 与该行的每一列进行比较之后返回 "C2" 的结尾,因为 0.7 > 0.5 和 0.2 但是它小于 0.9 和 1.2 所以它应该去到最接近的较小值,即 C2 列的 0.5。有什么办法可以做到这一点?重建数据库模式有点不是 option.Please 帮助我的人。谢谢
重建数据库架构。
如果不可能,您必须手动比较所有列与 CASE expression:
SELECT CASE WHEN C4 < 0.7 THEN 'C4'
WHEN C3 < 0.7 THEN 'C3'
WHEN C2 < 0.7 THEN 'C2'
WHEN C1 < 0.7 THEN 'C1'
ELSE '???'
END AS ClosestSmallerColumn
FROM MyTable
WHERE Qual = 50
我有以下 table:
质量 | C1 | C2 | C3 | C4 |
50 | 0.2 | 0.5 | 0.9 | 1.2 |
100 | 0.3 | 0.7 | 1.1 | 1.7 |
我有一个 inputX1(例如 50)和另一个 inputX2(= 0.7),我要将 inputX2 与 Qual=50 的行的每一列进行比较。所以首先我们得到:
质量 | C1 | C2 | C3 | C4 |
50 | 0.2 | 0.5 | 0.9 | 1.2 |
我想在将 inputX2=0.7 与该行的每一列进行比较之后返回 "C2" 的结尾,因为 0.7 > 0.5 和 0.2 但是它小于 0.9 和 1.2 所以它应该去到最接近的较小值,即 C2 列的 0.5。有什么办法可以做到这一点?重建数据库模式有点不是 option.Please 帮助我的人。谢谢
重建数据库架构。
如果不可能,您必须手动比较所有列与 CASE expression:
SELECT CASE WHEN C4 < 0.7 THEN 'C4'
WHEN C3 < 0.7 THEN 'C3'
WHEN C2 < 0.7 THEN 'C2'
WHEN C1 < 0.7 THEN 'C1'
ELSE '???'
END AS ClosestSmallerColumn
FROM MyTable
WHERE Qual = 50