Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.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
Sql 按空格分隔的字符串列排序_Sql_Oracle11g_Toad - Fatal编程技术网

Sql 按空格分隔的字符串列排序

Sql 按空格分隔的字符串列排序,sql,oracle11g,toad,Sql,Oracle11g,Toad,名为ASORT的表具有以下定义和插入(按指定顺序): 但理想的顺序是空格后的所有数字也应按如下所示进行排序 请提出查询以获得所需结果 谢谢 您可以使用regexp\u substr()从分隔列表中提取第n个元素。然后,您可以将这些值转换为数字并按顺序排列。比如: ORDER BY cast(replace(regexp_substr(b||' ', '[0-9]+ ', 1, 1), ' ', '') as int) NULLS FIRST, cast(replace(re

名为
ASORT
的表具有以下定义和插入(按指定顺序):

但理想的顺序是空格后的所有数字也应按如下所示进行排序

请提出查询以获得所需结果


谢谢

您可以使用
regexp\u substr()
从分隔列表中提取第n个元素。然后,您可以将这些值转换为数字并按顺序排列。比如:

ORDER BY cast(replace(regexp_substr(b||' ', '[0-9]+ ', 1, 1), ' ', '') as int) NULLS FIRST,
         cast(replace(regexp_substr(b||' ', '[0-9]+ ', 1, 2), ' ', '') as int)

是SQL Fiddle。

在SQL Fiddle中,如果我从查询中删除null FIRST子句,则顺序会混乱。你能不能先帮我理解NULLS的作用。@WamglindCarmasaic。它只指定
NULL
值的位置。当我把查询复制到这里时,我似乎错过了它。
ORDER BY cast(replace(regexp_substr(b||' ', '[0-9]+ ', 1, 1), ' ', '') as int) NULLS FIRST,
         cast(replace(regexp_substr(b||' ', '[0-9]+ ', 1, 2), ' ', '') as int)