sql – 定制ORDER BY忽略”

前端之家收集整理的这篇文章主要介绍了sql – 定制ORDER BY忽略”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试排序一个标题列表,但是目前有一个巨大的标题,以“The”开头.我想让’The’被忽略,而排除第二个字的那种.在sql中是可能的,还是在前端做定制工作?

例如,当前排序:

>飞机
>男子小孩
>全金属外套
>纸浆小说
>喷泉
大逃亡
>女王
> Zardoz

会更好的排序:

>飞机
>男子小孩
>喷泉
>全金属外套
大逃亡
>纸浆小说
>女王
> Zardoz

几乎好像记录被存储为“喷泉”,等等.但是如果可以的话,我不想这样存储,这当然是问题的症结所在.

解决方法

最好是有一个计算列来执行此操作,以便您可以索引计算列和顺序.否则,排序会很多的工作.

所以你可以把你的计算列:

CASE WHEN title LIKE 'The %' THEN stuff(title,1,4,'') + ',The' ELSE title END

编辑:如果MysqL中没有STUFF,则使用RIGHT或SUBSTRING删除前导的4个字符.但是如果可能,仍然尝试使用计算列,以便索引可以更好.同样的逻辑应该适用于“A”和“An”.

猜你在找的MsSQL相关文章