oracle排序把包含某字的字符串排到后面

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle排序把包含某字的字符串排到后面相关的知识,希望对你有一定的参考价值。

假设有这些车牌
浙B8E252

浙B8K71挂

浙B8M60挂

浙B8K37挂

浙B88227

浙B88301

浙B88303
我怎么把包含‘挂’字的车牌排到最后呢,如
浙B8E252

浙B88227

浙B88301

浙B88303
浙B8K71挂
浙B8M60挂
浙B8K37挂
按字符串长度order by length(column) asc
没效果

参考技术A 按你的需求:
ORDER BY CharIndex(...)追问

是在oracle中排序,CharIndex无效啊

追答

找类似的函数啊

参考技术B 你的车牌号是几位,加挂字又是几位,你检查下数据,这个问题按order by length(column) asc可以排序的。追问

浙B88303
浙B8K71挂
浙B8M60挂
浙B8K37挂
位数一样吧,order by length(column) asc我试过了没用啊

追答

国家发牌号还有有挂?挂是业务需要加上的吧

python入门之冒泡排序

原理:

  (白话描述)一列数,从左到右,依次两两比较,若左边的数大于右边的数,则两数交换,始终保持比较后左边的数小于右边的数,这样从第一个到最后一个数全部比较一次就会把这列数中的最大值排到最后(最右边),然后再左到右,依法比较,比较到倒数第二位停止,这样将第二大的数排到右边第二个位置。这样依次下次,每次都会把剩余的数字中最大值排到后面,直到全部比较排序完成。

 

排序代码:

  针对列表li排序

for i in range(1,len(li)):
    for j in range(len(li)-i): #每次排完会得出个最大值,所以下次会少比较一个
        if li[j] > li[j+1]:
            temp = li[j]
            li[j] = li[j+1]
            li[j+1] = temp

 

以上是关于oracle排序把包含某字的字符串排到后面的主要内容,如果未能解决你的问题,请参考以下文章

冒泡排序

Oracle同一列中存放数字或字母时的排序

20191209-八大排序之冒泡排序

数据结构排序

python入门之冒泡排序

oracle 中文数字混合 排序 字段book_no需要先按照中文分组后按照后面的数字编号排序,也就是一组一排序