首页 > 解决方案 > SQL 根据第一列的值对第二列进行排序

问题描述

我正在尝试从表中检索数据,但是我需要生成的游标来优先考虑第一行的排序,然后对于第一列中的每个值,我需要它来检查并根据该值添加第二列中的行.

从:

| Note | ID_1 | ID_2|
|------|------|-----|
| abc  |   1  | NULL|
| bcd  |   2  | NULL|
| ghu  |   3  | NULL|
| cde  |   4  |  2  |
| def  |   5  |  1  |

到:

| Note | ID_1 | ID_2|
|------|------|-----|
| abc  |   1  | NULL|
| def  |   5  |  1  |
| bcd  |   2  | NULL|
| cde  |   4  |  2  |
| ghu  |   3  | NULL|

我实际上并不需要它来重新排序表,我只需要返回游标以按该顺序返回值。我尝试按第一列排序,然后检查第二列以及其他一些内容,但没有成功。

SELECT * FROM TBL_X ORDER BY ID_1, ID_2

这甚至可以在 SQL 查询中完成吗?

标签: mysqlsql

解决方案


你想要:

select t.*
from t
order by coalesce(id_2, id_1), id_1

推荐阅读