特殊排序

sisiz 2009-07-07 02:15:45
TB
ID Sname
1
...全文
70 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
--小F-- 2009-07-07
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 sql77 的回复:]
SQL codeCREATETABLE TBTEST(IDINT, subidINT,SnameCHAR(1))INSERT TBTESTSELECT1 ,2 ,'a'UNIONALLSELECT1 ,1 ,'b'UNIONALLSELECT1 ,3 ,'c'UNIONALLSELECT1 ,4 ,'d'UNIONALLSELECT1 ,5 ,'f'UNIONALLSELEC¡­
[/Quote]
........
ChinaJiaBing 2009-07-07
  • 打赏
  • 举报
回复
TB
ID Sname
1

怎么个特殊? 这样
select row_number(partition by 字段 order by 字段) 序号 ,* from 表
order by case when 序号=1 then 1 else when... then 2 ... else ... end

xz_lm_fly 2009-07-07
  • 打赏
  • 举报
回复
什么个规律
Rotel-刘志东 2009-07-07
  • 打赏
  • 举报
回复
给出表结构呀!!
SQL77 2009-07-07
  • 打赏
  • 举报
回复
CREATE TABLE TBTEST(ID INT,  subid INT,Sname CHAR(1))
INSERT TBTEST
SELECT 1 , 2 , 'a' UNION ALL
SELECT 1 , 1 , 'b' UNION ALL
SELECT 1 , 3 , 'c' UNION ALL
SELECT 1 , 4 , 'd' UNION ALL
SELECT 1 , 5 , 'f' UNION ALL

SELECT 2 , 1 , 'a' UNION ALL
SELECT 2 , 3 , 'b' UNION ALL

SELECT 3 , 2 , 'a' UNION ALL
SELECT 3 , 1 , 'b' UNION ALL
SELECT 3 , 3 , 'c' UNION ALL
SELECT 3 , 4 , 'd' UNION ALL
SELECT 3 , 5 , 'f'

--DROP TABLE TBTEST

select * from tbtest order by case when ID=2 then 1 else 0 end ,case when id=2 and sname='a' then 0 else 1 end

ID subid Sname
----------- ----------- -----
1 2 a
1 1 b
1 3 c
1 4 d
1 5 f
3 2 a
3 1 b
3 3 c
3 4 d
3 5 f
2 1 a
2 3 b

(所影响的行数为 12 行)
Four 2009-07-07
  • 打赏
  • 举报
回复
这是怎么个规则?
sisiz 2009-07-07
  • 打赏
  • 举报
回复
没有写完,不小心提交了。
sisiz 2009-07-07
  • 打赏
  • 举报
回复
TB
ID subid Sname
1 2 a
1 1 b
1 3 c
1 4 d
1 5 f

2 1 a
2 3 b

3 2 a
3 1 b
3 3 c
3 4 d
3 5 f

排序结果


ID subid Sname
1 2 a
1 1 b
1 3 c
1 4 d
1 5 f


3 2 a
3 1 b
3 3 c
3 4 d
3 5 f


2 1 a
2 3 b
Four 2009-07-07
  • 打赏
  • 举报
回复
是够特殊了。。
--小F-- 2009-07-07
  • 打赏
  • 举报
回复
???数据没给全吧
昵称被占用了 2009-07-07
  • 打赏
  • 举报
回复
要怎么排?
jia_guijun 2009-07-07
  • 打赏
  • 举报
回复
不懂。

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧