有熟悉sql语句的吗?遇到个排序的问题

Reza Ramadhan-avatar

Reza Ramadhan

2022-06-19T08:10:08+00:00

目前排序字段是章节编号,类似1.1,1.2,1.3,结果发现到了1.10就出问题了
有没有什么方便一点的办法?

补充下,因为是章节,会有三级四级,就是1.1.1这种
yooooow-avatar

yooooow

截图看看
100p-avatar

100p

把字段*10000,然后按新字段排序 - -。
Guilt Tripper™-avatar

Guilt Tripper™

你这个1.10字符类型?那么肯定就比1.2小了啊
Eddie Lam-avatar

Eddie Lam

按.分割 split一下再按照两个字段排序[s:ac:blink]
Peeks-avatar

Peeks

盲猜一位一位比较的
BrownedBag-avatar

BrownedBag

我还真忘了order by能不能正常排序浮点数了......
Tj🍜-avatar

Tj🍜

[quote][tid=32392520]Topic[/tid] Post by [uid=1944312]战场的白狼[/uid] (2022-06-20 16:10):

目前排序字段是章节编号,类似1.1,1.2,1.3,结果发现到了1.10就出问题了
有没有什么方便一点的办法?[/quote]转换一下数据格式
나는누구야-avatar

나는누구야

没做过sql的排序,但我怀疑是按字符排序和按数字排序的问题,就像windows按文件名排序会把 1.1 和 1.10 放在相邻,然后是 1.2 和 1.20
ExaltedDice-avatar

ExaltedDice

你这是按文字排的,找个函数转换成数字就行了
BriteBugs-avatar

BriteBugs

先分割再排序
Guilt Tripper™-avatar

Guilt Tripper™

[quote][pid=619470709,32392520,1]Reply[/pid] Post by [uid=14285467]柒零八落[/uid] (2022-06-20 16:11):

把字段*10000,然后按新字段排序 - -。[/quote]老哥,你这个是认真的?1.10乘以10000它还是比1.2*10000小啊。
pixii ⵣ-avatar

pixii ⵣ

1.10不就是比1.2小么,你看不能不截取小数点以后的数据来排序
minorthreat269-avatar

minorthreat269

取点后面的数字排序
Huds297-avatar

Huds297

拉到内存里面用代码去处理
JustRxdPanda-avatar

JustRxdPanda

先转成字符,然后按点号分割再进行排序。写个存储过程吧,这个用一两句解决不了的。
PLUMBIS-avatar

PLUMBIS

去掉前两位排序
SwagSauce-avatar

SwagSauce

字符串排序?
AriGold-avatar

AriGold

你这不是按文字排了吗··
LittleUncle306-avatar

LittleUncle306

其实最简单的办法就是2个字段排序,章和节。
不然的话,把你这个拆成2个字段去排序,做截取。
先截取小数点前面的。
然后截取小数点后面的