写“比较器”在 SQL 中
我有以下问题:
根据以下规则查找表 A 中的最高行:
表 A
列:V_Date 日期、int 类型、H_Date 日期
1) 找到最高的 V_Date
2) 如果 V_Dates 相同,则查找优先级最高的行,其中优先级在表 B 中定义,列为 Type int、Priority int
3)如果V_Date和Priority相同,则找到H_Date最高的那个(那么保证唯一)
优先级不分明,所以max(prio)返回多个值。
有人可以帮助我吗?
非常感谢。
I have the following problem:
find the highest row in a table A according to the following rules:
Table A
Columns: V_Date Date, Type int, H_Date Date
1) find the highest V_Date
2) if V_Dates are the same find the row with the highest Priority, where Priority is defined in Table B with columns Type int, Priority int
3) if V_Date and Priority are the same, find the one with the highest H_Date (then it is guaranteed to be unique)
The priorities are not distinct, so max (prio) returns more than one value.
Can anybody help me?
Thank you very much.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用 ORDER BY 并将结果限制为一行:
具体语法可能因特定数据库而异。
LIMIT 1
。SELECT TOP(1)
。Use ORDER BY and limit the result to one row:
Exact syntax may vary depending on the specific database.
LIMIT 1
as above.SELECT TOP(1)
.SELECT * FROM (subquery here) WHERE rownum = 1
.听起来像是家庭作业(如果不是,请告诉我)。所以你会得到一个普遍的答案。更多详细信息可能需要您指定数据库类型。
JOIN
表。将ORDER BY
语句与TOP
语句结合使用。Sounds like homework (if it isn't, tell me). So you'll get a general answer. More detail might require you to specify the db type.
JOIN
the tables. Use theORDER BY
statement in combination with theTOP
statement.