gpt4 book ai didi

SQL ORDER by STRING 奇怪的语法

转载 作者:行者123 更新时间:2023-12-04 23:45:37 25 4
gpt4 key购买 nike

是否有更简洁/更编程的方式来解决这个问题:

ORDER BY CASE 
WHEN lessonID = 'lesson_1' Then 1
WHEN lessonID = 'lesson_novid_1' Then 2
WHEN lessonID = 'lesson_2' Then 3
WHEN lessonID = 'lesson_novid_2' Then 4
WHEN lessonID = 'lesson_3' Then 5
WHEN lessonID = 'lesson_novid_3' Then 6
WHEN lessonID = 'lesson_4' Then 7
WHEN lessonID = 'lesson_novid_4' Then 8
WHEN lessonID = 'lesson_5' Then 9
WHEN lessonID = 'lesson_novid_5' Then 10
WHEN lessonID = 'lesson_6' Then 11
WHEN lessonID = 'lesson_novid_6' Then 12
WHEN lessonID = 'lesson_7' Then 13
WHEN lessonID = 'lesson_novid_7' Then 14
WHEN lessonID = 'lesson_8' Then 15
WHEN lessonID = 'lesson_novid_8' Then 16
WHEN lessonID = 'lesson_9' Then 17
WHEN lessonID = 'lesson_novid_9' Then 18
WHEN lessonID = 'lesson_10' Then 19
WHEN lessonID = 'lesson_novid_10' Then 20
WHEN lessonID = 'lesson_11' Then 21
WHEN lessonID = 'lesson_novid_11' Then 22
WHEN lessonID = 'lesson_12' Then 23
WHEN lessonID = 'lesson_novid_12' Then 24
End ASC

最佳答案

尝试找到数字并将其转换为整数:

ORDER BY
CAST(REPLACE(REPLACE(lessonID, 'lesson_', ''), 'novid_', '') AS INT),
lessonID

在线查看它:sqlfiddle

请注意,此查询将无法使用索引来执行排序。您可以考虑使用 computed column并将其编入索引以提高性能。

关于SQL ORDER by STRING 奇怪的语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11836200/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com