Java sql查询中的排序
在这种情况下,如何进行排序?如何以这种或任何其他方式使用order by进行排序 查询我正在使用此查询:Java sql查询中的排序,java,sql,Java,Sql,在这种情况下,如何进行排序?如何以这种或任何其他方式使用order by进行排序 查询我正在使用此查询: 按productno从matTab订单中选择productno、createdt、productcode 输出为 PO/19-20/106 PO/19-20/110 PO/19-20/101 PO/19-20/114 PO/19-20/150 PO/19-20/29 PO/19-20/29 PO/19-20/29 PO/19-20/29 PO/19-20/81 PO/19-20/81 PO/
按productno从matTab订单中选择productno、createdt、productcode
输出为
PO/19-20/106
PO/19-20/110
PO/19-20/101
PO/19-20/114
PO/19-20/150
PO/19-20/29
PO/19-20/29
PO/19-20/29
PO/19-20/29
PO/19-20/81
PO/19-20/81
PO/19-20/94
PO/19-20/94
PO/19-20/29
预期结果是:
PO/19-20/29
PO/19-20/29
PO/19-20/81
PO/19-20/81
PO/19-20/94
PO/19-20/94
PO/19-20/101
PO/19-20/106
PO/19-20/110
PO/19-20/114
PO/19-20/150
PO/19-21/152
PO/19-21/190
PO/19-21/200
只需将其他2列添加到ORDERBY子句中,就可以按照您想要的方式对结果进行排序
select productno, createdt, productcode
from matTab
order by productno, createdt, productcode
希望对您有所帮助,Max如果您可以将查询结果存储到POJO列表中,那么您可以使用定制的
比较器对列表进行排序,如下所示:
POJO
我假设createdt
是一个字符串,productcode
是一个整数
class MatTabInfo {
private String productno;
private String createdt;
private int productcode;
//general getters ans setters
}
定制比较器
首先比较createdt
(字符串),然后比较productcode
(整数)
这里的“排序”是什么意思?你能给我们解释一下吗?事实上,我想用上面的订单号按升序或降序排列。那么如何做到这一点..告诉我们您使用的是哪个版本的SQL(例如MySQL、SQL Server、Oracle等),并给出如何使用采购订单编号进行排序的逻辑。SQL SERVER 2008可能您可以向我们展示预期结果作为示例?谢谢Max。您的建议很有价值,但我正在寻找代码,通过这些代码我可以直接获得预期结果,我正在寻找您的预期结果是什么?您想将整个结果放在一列中吗?选择我要查找的问题中提到的productno+'/'+createdt+'/'+ProductCode,或者直接按订单格式获取采购订单编号。PO/19-21/152 PO/19-21/190 PO/19-21/200我正在查看此格式,所有编号应按升序或降序排列。我想知道PO/19-21/152
表示由“/”连接的3列还是3列不同?@ashish yadav但您的SQL语句选择了3列,我不明白为什么它只基于一个专栏!
class CustomComparator implements Comparator<MatTabInfo> {
@Override
public int compare(MatTabInfo o1, MatTabInfo o2) {
if (o1.getCreatedt().compareTo(o2.getCreatedt()) == 0) {
if (o1.getProductcode() == o2.getProductcode()) {
return 0;
} else if (o1.getProductcode() < o2.getProductcode()) {
return -1;
} else {
return 1;
}
} else {
return o1.getCreatedt().compareTo(o2.getCreatedt());
}
}
}
List<MatTabInfo> matTabInfoList = new ArrayList<>();
matTabInfoList = ...//generated by querying from DB
Collections.sort(matTabInfoList, new CustomComparator());