Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 在crystal报表公式中用零填充字符串_String_Sorting_Crystal Reports_Pad - Fatal编程技术网

String 在crystal报表公式中用零填充字符串

String 在crystal报表公式中用零填充字符串,string,sorting,crystal-reports,pad,String,Sorting,Crystal Reports,Pad,我有一些最大长度为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

我有一些最大长度为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

以下是使用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
             )

你使用什么样的数据库。您的数据总是以数字、数字/字母的形式存在,或者可以是其他形式,比如数字/字母/数字。正如我所示,它有时是数字、其他时间数字+字母表的组合。您是否尝试过发布的代码?因为在SQL Server上,它提供了所需的结果。