1

我有一些最大长度 cab 为 4 的字符串。但前导零不存在,所以我需要从左侧填充相同的字符串。我很困惑,因为字符串是这样的:

11A
12B
13
6
6A

有没有一种方法可以添加前导零然后对它们进行排序,这样列表可以像:

6
6A
11A
12B
13 and so on.

更新: 我曾尝试从右侧使用填充零并指定长度,例如:

Right("00" & TableField,3) as maximum can be three, but that is sorting as

6
13
6A
11A
12B
4

1 回答 1

0

以下是使用 SQL 查询检索排序数据的示例。

SELECT
    DATA
FROM 
    (
        SELECT '11A' AS DATA
        UNION ALL
        SELECT '12B'
        UNION ALL
        SELECT '13'
        UNION ALL
        SELECT '6'
        UNION ALL
        SELECT '6A'
    ) AS TestTable
ORDER BY
         LEN((
                CASE WHEN ISNUMERIC(DATA) = 1
                    THEN LEFT(DATA + '0000', LEN(DATA) + 1)
                    ELSE DATA
                END
             )),
             (
                CASE WHEN ISNUMERIC(DATA) = 1
                    THEN LEFT(DATA + '0000', LEN(DATA) + 1)
                    ELSE DATA
                END
             )
于 2013-06-25T10:12:37.267 回答