2024-10-17 08:35:45
不可能同时用3种排列吧。
我记得,sql里有一个函数叫case when then else end,类似于数学里的分类讨论思想。
最多可以按NOTES的字符数来排列,字符最多的排第一位,最少的排最后面。
不单单是字符数的问题。
拿“有六个字的notes”来说
字数要达标准,
达到标准之后,判断 众多满足条件(有六个字)的notes里面,
哪些是前六个字相同、前五个字相同、前四个字相同等等。
关键是你NOTES里面的内容是什么情况?
如果上面的三种情况都能满足,那该如何处理?
前六个字相同且前五个字相同且前四个字相同,
那不就是按“前六个字相同”处理吗?
这样做的目的是什么? 记录大概有多少?
AAAAAAA
AAAAAAB
AAAAAB
AAAAAC
AAAAC
AAAAD
AAAD
AAAE
把那些字数大于等于6字的数据摆在一块,
把那些数据按前6个字来排序:
前6字相同的先排序,
前6字不完全相同的前5字相同的先排序,
依此类推
再把那些字数大于等于5个字的数据摆在一块,
把那些数据按前5个字来排序:
前5字相同的先排序,
前5字不完全相同的前4字相同的先排序,
依此类推
然后继续往下
2024-10-17 11:26:15
谢谢大家,我已经知道了,是用len()函数
现在有新问题,
notes这个字段,
有些记录是六个字以及六个字以上,
有些记录是五个字,
有些记录是四个字,
有些记录是四个字以下
我现在想实现的功能是
如果notes前六个字相同,按六个字排序
如果notes前五个字相同,按五个字排序
如果notes前四个字相同,按四个字排序
请问,怎么用sql语句实现啊?
你直接用 order by notes 即可实现的。
把那些字数大于等于6个字的数据摆在一块,
把那些数据按前6个字来排序:
前6个字相同的先排序,
前6个字不完全相同的按前5个字相同排序,
依此类推
再把那些字数大于等于5个字的数据摆在一块,
把那些数据按前5个字来排序:
前5个字相同的先排序,
前5个字不完全相同的按前4个字相同排序,
依此类推
然后继续往下
2024-10-17 10:25:18
谢谢大家,我已经知道了,是用len()函数
现在有新问题,
notes这个字段,
有些记录是六个字以及六个字以上,
有些记录是五个字,
有些记录是四个字,
有些记录是四个字以下
我现在想实现的功能是
如果notes前六个字相同,按六个字排序
如果notes前五个字相同,按五个字排序
如果notes前四个字相同,按四个字排序
请问,怎么用sql语句实现啊?
你的意思是6个字的排最前面?
order by len(notes) desc,notes
order by len(notes) desc,notes
什么意思啊?desc和notes中间还有一个逗号???????
2024-10-17 12:35:15
谢谢大家,我已经知道了,是用len()函数
现在有新问题,
notes这个字段,
有些记录是六个字以及六个字以上、五个字、四个字、四个字以下
把那些字数大于等于6个字的数据摆在一块,
按前6字来排序:
前6字相同的先排序,
前6字不完全相同的前5字相同先排序
依此类推
再把那些字数大于等于5字的数据摆在一块,
按前5字来排序:
前5字相同的先排序,
前5字不完全相同的前4字相同先排序
依此类推
然后继续往下
2024-10-17 09:59:23
谢谢大家,我已经知道了,是用len()函数
现在有新问题,
notes这个字段,
有些记录是六个字以及六个字以上、五个字、四个字、四个字以下
把那些字数大于等于6个字的数据摆在一块,
按前6字来排序:
前6字相同的先排序,
前6字不完全相同的前5字相同先排序
依此类推
再把那些字数大于等于5字的数据摆在一块,
按前5字来排序:
前5字相同的先排序,
前5字不完全相同的前4字相同先排序
依此类推
然后继续往下