Oracle 如何在SQL语句中进行排序,同时将数字的值设置为小于字符的值?
如何在SQL语句中进行排序,同时将数字的值设置为小于字符的值 e、 g: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上使用单独的列集
- “iPad Wi-Fi”应出现在“iPad 2 Wi-Fi”之前
- “iPad2 Wi-Fi”应出现在“iPad3 Wi-Fi”之前
- “iPad3 Wi-Fi”应出现在“iPhone”之前
- “iPhone”应出现在“iPhone 2”之前
时。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