String Firebird确定字符串是否都是数字
我在Firebird 2.0表中有一个VARCHAR字段,可以包含字母数字字符。我需要对该字段中的数据进行排序,将仅包含数字的所有值排序为数字,并将所有其他值排序为0 例如,如果我有四个值String Firebird确定字符串是否都是数字,string,sorting,numbers,firebird,casting,String,Sorting,Numbers,Firebird,Casting,我在Firebird 2.0表中有一个VARCHAR字段,可以包含字母数字字符。我需要对该字段中的数据进行排序,将仅包含数字的所有值排序为数字,并将所有其他值排序为0 例如,如果我有四个值 "1", "2", "10", "string", 我需要把它分类为 "string", "1", "2", "10". 默认排序,字符串排序为 "1", "10", "2", "string". 我曾考虑将值强制转换为整数,但字符串上出现了转换错误,这当然是正确的。如何解决这个问题?使用应用程序创
"1", "2", "10", "string",
我需要把它分类为
"string", "1", "2", "10".
默认排序,字符串排序为
"1", "10", "2", "string".
我曾考虑将值强制转换为整数,但字符串上出现了转换错误,这当然是正确的。如何解决这个问题?使用应用程序创建额外的列,在其中存储可排序的值。然后根据该列进行排序。
如果您希望数字在末尾,请在数字前插入“ZZZ”(或“ÜÜÜÜ”或您语言中的最后一个字符)。类似格式(“ZZZ%012d”,我的编号) 您可以使用内置函数LPAD:
SELECT
...
<number_field>,
...
FROM
...
ORDER BY
LPAD(<numer_field>, 10)
选择
...
,
...
从…起
...
订购人
LPAD(,10)