Talend 排序行或 tSortRow 字段可用于按升序或降序对输入记录进行排序并返回输出。我们可以使用此排序行字段来查看销售额从高到低等。
在此排序行示例中,我们使用了 SQL Server 数据库中的 Customer 表。下图显示了该表中的数据。

如果您在调色板中选择 tSortRow,您会看到一个解释该字段的小工具提示。Talend tSortRow 对数据流进行排序。它允许高级排序选项,例如多列排序、升序、降序排序和字母排序。
首先,拖放 DBConnection 和 DBCommit 以建立与 SQL Server 的连接并关闭它。其次,使用 DBInput,选择现有的 Connection 选项,然后选择 tDBConnection。接下来,从 Talend Repository 中选择模式,因为我们所有的表模式都可以在 Repository 中找到。
接下来,单击 Edit Schema 标签旁边的浏览按钮,然后从 Table Schemas Metadata 中选择 Customers 表。
Talend tSortRow 排序行示例
现在,您可以看到 Customer 表作为表名。接下来,单击 Guess Query 按钮,以便 Talend 会自动为您编写 Select Statement 查询。

接下来,将 tSortRow 从调色板拖放到作业设计中。

请将 DBInput 的主行连接到 Talend tSortRow。大多数情况下,输入列将与 tSortRow 同步。如果不是这种情况,请单击 Sync columns 按钮。

接下来,单击 Edit Schema 按钮以根据需要检查或修改 tSortRow 模式。

在 Sort Row Component 选项卡中,有一个 Criteria 部分。在这里,我们选择列并指定排序顺序。
请单击 Add(加号)按钮。默认情况下,它会添加第一个列,即 Customers 表中的 EmpID。

请使用 Schema Column 下的下拉框选择所需的列。在这里,我们选择了 Occupation 字段。
在 sort num 或 alpha 下,我们有以下选项
- num:用于对数字值或数字进行排序。
- alpha:用于对字符串数据或字母进行排序。
- date:对此排序选项用于对日期值进行排序。
由于 Occupation 是字符串数据,我们选择了 alpha。接下来,我们可以保留 asc 或 desc 选项,默认为 asc。否则,您可以选择 desc。

接下来,我们使用 DBOutput 将 Talend tSortRow 的输出保存在 SQL 数据库中。在这里,我们创建 Talend_Sorted_Customers 表作为目标表。让我们运行 Talend Sort Row 作业。

从上面的屏幕截图中,您可以看到一个错误,指出 EmpID 是一个标识列。但我们正在向其中插入记录。要解决此问题,请转到 components 选项卡。
请选中 Turn on Identity Insert 选项和 Specify the identity field 选项。接下来,选择 Identity field 并指定起始值和步长。默认情况下,它将选择整数字段并将起始值和步长设置为一。但是,您可以根据需要进行更改。

现在,您可以看到 Talend 排序行数据作业已成功运行!

让我打开 Management studio 来检查排序行结果。请记住,Talend tSortRow 与 SQL Order By Clause 相同。

这次,我们使用了两个字段并运行了作业。这意味着 tSortRow 需要按 occupation 的升序排序 Customers,然后按 Yearly Income 的降序排序。

请检查 Talend 排序行作业结果。

在这里,我们使用了另一个列 HireDate 来以降序对日期字段进行排序。

请检查 tSortRow 结果。
