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 Firebird确定字符串是否都是数字_String_Sorting_Numbers_Firebird_Casting - Fatal编程技术网

String Firebird确定字符串是否都是数字

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". 我曾考虑将值强制转换为整数,但字符串上出现了转换错误,这当然是正确的。如何解决这个问题?使用应用程序创

我在Firebird 2.0表中有一个VARCHAR字段,可以包含字母数字字符。我需要对该字段中的数据进行排序,将仅包含数字的所有值排序为数字,并将所有其他值排序为0

例如,如果我有四个值

"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)