原表信息:
-------------------------------------
id col1 preid st
1 asdf 2
2 肯基发 2
3 搜索 1 2
4 萨瑟兰 3 1
5 呕死 2 2
6 辅导费 2 1
7 s导费 1
-------------------------------------
排序后是
-----------
id col1 preid st
4 萨瑟兰 3 1
6 辅导费 2 1
7 s导费 1
1 asdf 2
2 肯基发 2
3 搜索 1 2
5 呕死 2 2
-----------这种排序 应该怎么写?好像有点复杂
-------------------------------------
id col1 preid st
1 asdf 2
2 肯基发 2
3 搜索 1 2
4 萨瑟兰 3 1
5 呕死 2 2
6 辅导费 2 1
7 s导费 1
-------------------------------------
排序后是
-----------
id col1 preid st
4 萨瑟兰 3 1
6 辅导费 2 1
7 s导费 1
1 asdf 2
2 肯基发 2
3 搜索 1 2
5 呕死 2 2
-----------这种排序 应该怎么写?好像有点复杂
------------原数据集-----
id col1 preid st
1 asdf null 2
2 肯德发 null 2
3 搜索 1 2
4 萨瑟兰 3 1
5 呕死 2 2
6 辅导费 2 1----------目标------------
id col1 preid st
4 萨瑟兰 3 1
6 辅导费 2 1
1 asdf null 2
2 肯德发 null 2
3 搜索 1 2
5 呕死 2 2
declare @table table (id int,col1 varchar(6),preid int,st int)
insert into @table
select 1,'asdf',2,null union all
select 2,'肯基发',2,null union all
select 3,'搜索',1,2 union all
select 4,'萨瑟兰',3,1 union all
select 5,'呕死',2,2 union all
select 6,'辅导费',2,1 union all
select 7,'s导费',1,nullselect * from @table order by isnull(st*2,3)
/*
id col1 preid st
----------- ------ ----------- -----------
4 萨瑟兰 3 1
6 辅导费 2 1
7 s导费 1 NULL
1 asdf 2 NULL
2 肯基发 2 NULL
3 搜索 1 2
5 呕死 2 2
*/
insert into @table
select 1,'asdf',null,2 union all
select 2,'肯德发',null,2 union all
select 3,'搜索',1,2 union all
select 4,'萨瑟兰',3,1 union all
select 5,'呕死',2,2 union all
select 6,'辅导费',2,1select * from @table order by st,id/*
id col1 preid st
----------- ------ ----------- -----------
4 萨瑟兰 3 1
6 辅导费 2 1
1 asdf NULL 2
2 肯德发 NULL 2
3 搜索 1 2
5 呕死 2 2
*/
可能我的实例数据 还不完整;id col1 preid st
1 asdf null 2
2 肯德发 null 2
3 搜索 null 2
4 萨瑟兰 2 1
5 呕死 null 1
6 辅导费 3 1
7 搜索法 1 2
8 sfs 7 1
------->
id col1 preid st
8 sfs 7 1
4 萨瑟兰 2 1
6 辅导费 3 1
5 呕死 null 1
7 搜索法 1 2
1 asdf null 2
2 肯德发 null 2
3 搜索 null 2