Oracle:如何在SQL查询中实现“自然”的顺序?
发布时间:2021-05-16 15:47:31 所属栏目:站长百科 来源:网络整理
导读:例如, foo1foo2foo10foo100 而不是 foo1foo10foo100foo2 更新:对自己编码排序不感兴趣(虽然这本身就很有趣),但让数据库为我做排序. 您可以在order-by子句中使用函数.在这种情况下, 你可以拆分的非数字和数字部分 字段并将它们用作两个排序标准. select * fr
例如, foo1 foo2 foo10 foo100 而不是 foo1 foo10 foo100 foo2 更新:对自己编码排序不感兴趣(虽然这本身就很有趣),但让数据库为我做排序. 您可以在order-by子句中使用函数.在这种情况下,你可以拆分的非数字和数字部分 字段并将它们用作两个排序标准. select * from t order by to_number(regexp_substr(a,'^[0-9]+')),to_number(regexp_substr(a,'[0-9]+$')),a; 您还可以创建基于函数的索引来支持: create index t_ix1 on t (to_number(regexp_substr(a,a); (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |