用 sql 语句按指定的 id 序列排序
来源:互联网 发布:男女对唱网络歌曲很火 编辑:程序博客网 时间:2024/06/10 03:00
老网站伤不起啊,数据库庞大的要死,还不能随便改数据库结构,在没有任何辅助字段的情况下,需要按管理员所给出的 id 序列排序,真是麻烦啊。。。
没办法,研究 sql 函数吧。。。。
平时,我们获取数据一般是这样的指令:
select * from tb order by id desc
现在难题来了,这个 tb 表中没有关于排序的任何字段,现在希望按照操作人员给出的一个 id 序列进行显示,没有在序列内的,还按照原有排序方式进行。。。
好吧,我们先来看看怎么按照 id 序列排序,首先这个 ID 序列,是一个字符串,我们把 sql 拼接后,得到下面的指令:
select * from tb where id in (100,95,155,32,77,66)
这个时候,我们想到了,既然可以拼接到 in 里,我们还可以通过字符串函数,得到当前 ID 在 ID 序列里的位置:
select *,charindex(','+convert(nvarchar(10),id)+',','0,100,95,155,32,77,66,0') as sorted from tb where id in (100,95,155,32,77,66)
这个时候,结果还没有完善,因为我们还没有将不在 ID 序列中的内容列出,所以我们还得拼接一个 union 出来
select *,charindex(','+convert(nvarchar(10),id)+',','0,100,95,155,32,77,66,0') as sorted from tb where id in (100,95,155,32,77,66) unionselect *,len('0,100,95,155,32,77,66,0') as sorted from tb where id not in (100,95,155,32,77,66)order by sorted,id desc
OK,这样,就得到了按照 ID 序列排序的结果集了。。。
0 0
- 用 sql 语句按指定的 id 序列排序
- where in的sql语句按照指定ID进行排序的解决方法
- mysql 按指定id排序
- 递增ID的SQL语句
- dedecms织梦SQL语句批量删除指定ID范围文章
- sql 查询指定的id数据
- tp指定id排序
- mysql语句按某一列的指定规则排序
- 按指定排列顺序获取数据的sql语句
- 按指定排序SQL技巧
- 用SQL语句自编id号
- SQL查询语句的排序
- sql select id in的排序问题
- 冒泡排序--对指定的区间序列排序
- (SQL语句)按指定时间段分组统计
- wordpress 自定义循环 按指定 array(ID数组)排序
- mysql 用指定ID号排序输出结果
- 用SQL实现12345的所有排序序列--【叶子】
- hibernate关联关系
- 双系统安装之总结
- java读取ftp文件,并获取文件内容
- C-helloword 的实现
- IEnumerable<T>.ElementAt(index)的低效率问题
- 用 sql 语句按指定的 id 序列排序
- ORA-02291: 违反完整约束条件 - 未找到父项关键字
- 提交时提示错误This Bundle is invalid.New apps and app updates submitted to the App Store must be built wit
- spring-websocket demo1
- WindowManager.LayoutParams的使用
- 弹出一个注册div,后面背景变灰
- ipad/iphone启动界面Default.png
- android Stk 相关
- Qt简介以及如何配置Qt使用VS2010进行开发