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