sql - 带有 WHERE 子句和 MAX 函数的 SQL 选择
问题描述
我见过类似的问题,但没有一个涉及许多 WHERE 子句。
有没有更有效的方法来实现以下目标(z/OS 上的 DB2),理想情况下没有 WHERE 子句重复?
SELECT *
FROM TABLE
WHERE Value1 = "A"
AND Value2 = "B"
AND Tran-No = 123
AND Seq-No = (SELECT MAX(Seq-No)
FROM Table
WHERE Value1 = "A"
AND Value2 = "B"
AND Tran-No = 123)
基本上有许多行与“WHERE”标准匹配,并且只应返回具有最高 Seq-No 的行。上述方法有效,但有更好的选择吗?
解决方案
似乎你可以这样做:
SELECT Seq-No
FROM TABLE
WHERE Value1 = "A"
AND Value2 = "B"
AND Tran-No = 123
ORDER BY Seq-No DESC
LIMIT 1
获得第一个最高Seq-No
值?
推荐阅读
- node.js - 用于在本地验证 sitemap.xml 的工作 nodeJS 模块
- vb.net - 找到关键字后选择行
- swift - Xcode SDK 版本问题
- javascript - PHP/Wordpress:捕获 OnClick 事件 '下载 URL;并将其传递给“谢谢”页面以初始化下载
- sqlite - 来自多个随机表的sql查询
- android - 如何从 expo android 应用程序中删除核心功能(SMS 小区广播)
- django - 从 Tarball 失败 Django 错误安装 Hue?
- c# - 带有 Microsoft.Exchange.WebServices 的 SSIS 脚本任务
- java - Spring Boot - 获取环境变量
- javascript - 从 JSON 文件中获取值并按键值排序