这个问题基于我的 另一个问题 ,并使用所有相同的基本信息。该链接显示了我的表格布局和简单连接的基本要点。
我想编写另一个查询,从Table1中选择每条记录,并简单地按 Value 是否小于链接的阈值对它们进行排序。
再次,我感谢任何愿意为此尝试的人。数据库从来都不是我的强项。
这个问题基于我的 另一个问题 ,并使用所有相同的基本信息。该链接显示了我的表格布局和简单连接的基本要点。
我想编写另一个查询,从Table1中选择每条记录,并简单地按 Value 是否小于链接的阈值对它们进行排序。
再次,我感谢任何愿意为此尝试的人。数据库从来都不是我的强项。
SELECT t1.LogEntryID, t1.Value, t1.ThresholdID,
case when t1.Value < t2.threshold then 1 else 0 end as Rank
FROM Table1 t1
INNER JOIN Table2 t2 ON t1.ThresholdID = t2.ThresholdID
ORDER By Rank
如果您想要相反的顺序,您可以在DESC
之后添加。ORDER By Rank
类似于 OrbMan 给出的答案,但我更喜欢 CASE 在 ORDER BY 中明确,这样您就不会被迫按列显示您的订单。
SELECT
t1.LogEntryID
,t1.Value
,t1.ThresholdID
FROM
Table1 t1
JOIN Table2 t2 ON t2.ThresholdID = t1.ThresholdID
ORDER BY
CASE WHEN t1.Value < t2.threshold
THEN 1
ELSE 0
END ASC
只是一个想法,但您不能使用“阈值 - 值”作为您的返回列之一吗?
如果您这样做了(并且列是数字),您还可以看到该值与阈值有多近(或多远)。
任何正数或 0 都将低于阈值,任何负数都不会。