如何按子句用户排序以正确获取 01/2020 形状数据的记录



嗨,我有一些文件的记录,编号为 01/2020、02/2020等,我已经使用逐个子句按这些数字顺序获取记录,但它从 01/2020 到 10/2020 正确返回,然后它向我显示 100/2020 有解决方案吗? 请与我分享。

如果我的假设是正确的,即此记录的格式running_no/year那么您需要按顺序提取要包含的年份。请考虑以下示例。

如果数据如下所示:

+----------+
|   Value  |
+----------+
| 01/2020  |
| 02/2020  |
| 10/2020  |
| 100/2020 |
| 01/2021  |
| 10/2021  |
+----------+

后面的 4 位数字代表运行年份,然后您可以通过几种方式从 if 中提取年份。在这里,我展示了两个使用RIGHT()SUBSTRING_INDEX()的示例。

example 1:
SELECT * FROM table ORDER BY RIGHT(Value,4) ASC, ABS(Value) ASC;
example 2:
SELECT * FROM table ORDER BY SUBSTRING_INDEX(Value,'/',-1) ASC, SUBSTRING_INDEX(Value,'/',1) ASC;

还有更多方法可以实现这一点,只要您可以确定它会以您想要的方式返回结果。

我的问题已通过使用ORDER BY ABS(MyField)解决

相关内容

  • 没有找到相关文章

最新更新