它解决什么问题
调整行的先后顺序,行数和列都不变。除了给人看,它还有个不显眼但重要的用途:某些按顺序取值的操作依赖排序结果 – 比如用「上一个非空值」填充缺失值,排错了填出来的就是错的。
基本信息
| 英文原名 | Sorter |
|---|---|
| 中文名称 | 排序器(iModel 中文界面) |
| 节点库位置 | Manipulation → Row → Transform |
| 输入端口 | 1 个数据表 |
| 输出端口 | 1 个,行顺序改变、内容不变的表 |
| 行 ID 会变吗 | 不会。行 ID 跟着行走,所以排完序行 ID 看起来是乱的,这是正常的 |
配置项逐条
-
Sort by排序列与优先级
可以加多列。列表里的先后就是优先级 – 第一列相同的行之间,再按第二列排。先按部门再按原值倒序,就是这么配的。顺序配反了结果完全不同。
-
Ascending / Descending升序 / 降序
每一列各自设,互不影响。可以第一列升序、第二列降序。
-
Missing values position缺失值位置
空值排在最前还是最后。做数据体检时排在最前,一眼能看到有多少空的;出正式报表时排在最后,不干扰阅读。
Sorter 配置对话框
排序列 1优先级最高
所属部门 升序降序
排序列 2前一列相同时才起作用
原值 升序降序
列表里的先后就是优先级,配反了结果完全不同。
缺失值位置Missing values
排在最前排在最后
做数据体检时排最前,一眼看到有多少空的;出正式报表时排最后。
三个常见坑
- 数字排出来是乱的:9 排在 86000 前面。这一列是文本,按字符逐位比大小,「9」的首字符大于「8」。看列名旁的类型图标确认,然后回上游把类型改对 – 在这里排多少次都没用。
- 日期排序不对。同样的原因。
2026/1/5这种文本日期排出来 1 月会跟在 10 月后面。先用日期转换类节点转成真正的日期类型再排。 - 排完序,下游某些结果跟着变了。这通常不是 bug。按顺序取值的操作、取前 N 行、以及用上下行填充缺失值,都依赖当前行序。排序位置一挪,这些结果就会变 – 所以排序节点放在哪一步要想清楚,不是随便插一个的。
什么时候该换别的节点
| 情况 | 换成 |
|---|---|
| 只要金额最高的前 10 条 | Top k Selector,不用先排全表 |
| 想让行 ID 排完后也重新连号 | 排序后接 RowID 节点重新生成 |
| 只是想随机打乱 | Shuffle |
| 要按自定义顺序排,比如按「高中低」而不是拼音 | 先用 Rule Engine 造一列排序权重,再按权重排 |

