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
Oracle 如何在SQL语句中进行排序,同时将数字的值设置为小于字符的值?_Oracle_Sorting_Plsql - Fatal编程技术网

Oracle 如何在SQL语句中进行排序,同时将数字的值设置为小于字符的值?

Oracle 如何在SQL语句中进行排序,同时将数字的值设置为小于字符的值?,oracle,sorting,plsql,Oracle,Sorting,Plsql,如何在SQL语句中进行排序,同时将数字的值设置为小于字符的值 e、 g: “iPad Wi-Fi”应出现在“iPad 2 Wi-Fi”之前 “iPad2 Wi-Fi”应出现在“iPad3 Wi-Fi”之前 “iPad3 Wi-Fi”应出现在“iPhone”之前 “iPhone”应出现在“iPhone 2”之前 最简单的方法可能是创建一个单独的列,您可以按照自己的需要对其进行排序 然后通过确保由insert/update触发器设置来确保它保持一致 通过在insert/update上使用单独的列集

如何在SQL语句中进行排序,同时将数字的值设置为小于字符的值

e、 g:

  • “iPad Wi-Fi”应出现在“iPad 2 Wi-Fi”之前
  • “iPad2 Wi-Fi”应出现在“iPad3 Wi-Fi”之前
  • “iPad3 Wi-Fi”应出现在“iPhone”之前
  • “iPhone”应出现在“iPhone 2”之前

最简单的方法可能是创建一个单独的列,您可以按照自己的需要对其进行排序

然后通过确保由insert/update触发器设置来确保它保持一致

通过在insert/update上使用单独的列集合,您可以保证仅在需要时计算此订单的成本,而不是每次选择
时。DBA通常会牺牲空间来获得更多的时间


触发器的使用保持了ACID属性。

最简单的方法可能是创建一个单独的列,您可以按照自己的需要对其进行排序

select *
from your_table
order by 
replace(replace(replace(replace(replace(name, '9', '0'), '8', '1'), '7', '2'), '6', '3'), '5', '4') asc
然后通过确保由insert/update触发器设置来确保它保持一致

通过在insert/update上使用单独的列集合,您可以保证仅在需要时计算此订单的成本,而不是每次选择
时。DBA通常会牺牲空间来获得更多的时间


触发器的使用保持了ACID属性。

@在询问之前,我只能检查值是否为数字。我试图找出如何遍历字符并应用数字测试(一种错误的方法)。@在询问之前,我只能检查一个值是否是数字。我试图找出如何迭代字符并应用数字测试(错误的方法)。@[juergen d]+1谢谢!我在数字前加了一个“a”来修正这个说法。此外,没有必要颠倒数字顺序。也使它不区分大小写。这项工作是:从您的表格顺序中按以下顺序选择*(replace(replace)(replace(replace)(replace)(replace)(replace)(replace)(replace)(replace)(replace)(replace)(replace)(replace)(replace)(replace)(replace)(replace)(replace)(replace)(replace)(replace)(replace)(replace)(replace)(replace)(replace)(replace)(replace)(replace)(replace)(replace)(replace)(replace)(replace)(replace)(replace)(replac!我在数字前加了一个“a”来修正这个说法。此外,没有必要颠倒数字顺序。也使它不区分大小写。这项工作是:从您的表中按以下顺序选择*(replace(replace)(replace(replace)(replace)(replace(replace)(replace)(replace)(replace)(replace(replace)(replace)(你的列,'9','Z9','8','Z8','7','Z7','6','Z7','5','Z5','4','Z4','3','Z3','2','Z2','1','Z1','0','Z0'))
select *
from your_table
order by 
replace(replace(replace(replace(replace(name, '9', '0'), '8', '1'), '7', '2'), '6', '3'), '5', '4') asc