按指定顺序输出数据,可以使用order by charindex(','+convert(varchar,ID)+',',',3,1,2,5,4,')的方法来实现这个目的
select id,titlefrom tbnamewhere id in (3,1,2,5,4)order by charindex(','+convert(varchar,ID)+',',',3,1,2,5,4,')
我的理解是视图是把各自的数据按不同的表排列然后再按照字段排序,而直接SQL出来的数据则是按照数据排序,你可以看看你左侧的表是不是相同表的数据都集中在一起,想正确排序的话还是主动order by一下,别自动排序了
只移动“图书”一项,按照表里的parent_id和id来看是不可能的,因为还有“百货”这个跟“图书”类似的记录,但是可以只移动“百货”和“图书”,排序按先parent_id再id就行(这样相同parent_id的记录不会打乱顺序),如下:
selectfrom product
order by parent_id, id;
望采纳,谢谢
以上就是关于sql server 使用 where ID in ... order by CHARINDEX 顺序混乱全部的内容,包括:sql server 使用 where ID in ... order by CHARINDEX 顺序混乱、关于MySQL排序: 同样的SQL语句,用来创建视图排序就变乱了,而如果直接执行语句就非常正常、在数据库中排序后就乱了等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)