按子字符串排序

您可按照子字符串排序,而不是按照字符、BYTE 或 TEXT 列的整个长度,或按照返回字符串的表达式排序。数据库服务器使用该子字符串来对结果集排序。通过指定整数下标( firstlast 参数)来定义该子字符串,表示在该列值之内子字符串的起始和终止字节位置。

下列 SELECT 语句查询 customer 表,并在 ORDER BY 列中指定列子字符串。这会指导数据库服务器通过包含在列值的第六至第九字节中的 lname 列的一部分来对查询结果排序。
SELECT * from customer ORDER BY lname[6,9];

假设在 customer 表的一行中的 lname 的值为 Greenburg。由于 ORDER BY 子句中的列子字符串,数据库服务器通过使用值 burg 来确定此行的排序位置,而不是通过整个列值 Greenburg

当按照表达式排序时,您可仅为返回字符数据类型的表达式指定子字符串。如果您在 ORDER BY 子句中指定列子字符串,则该列必须有下列数据类型中的一种:BYTE、CHAR、NCHAR、NVARCHAR、TEXT 或 VARCHAR。

GBase 8s 还可支持 ORDER BY 子句中的 LVARCHAR 列子字符串,如果该列在本地数据库服务器的数据库中的话。

要获取关于使用在 ORDER BY 子句中的列子字符串的 GLS 方面的信息,请参阅 GBase 8s GLS 用户指南