SQL查询语句如何能够让指定的记录排在最后
发布网友
发布时间:2022-04-07 17:19
我来回答
共11个回答
热心网友
时间:2022-04-07 18:48
方法如下:
select * from <表名> order by case when <条件> then 1 else 0 end asc
举例:
把threads表中列id值小于100的放到最后(也就是说>=100的在前面,但是顺序是不确定的,同时<100的在后面,顺序也是不确定的)
select * from threads order by case when id<100 then 1 else 0 end asc
出来的结果可能是:
id date
109 100809
110 100810
99 100812
76 100813
其中109和110谁在前面的不确定的, 99和76谁在前面也是不确定的
热心网友
时间:2022-04-07 20:06
通常通过排序实现。
解释:既然是特定的记录,必然有其特殊性,可以通过此特殊性条件,用order by语句进行排序实现记录的顺序调整。
sql:select * from tablename where id>5 order by id DESE;本句话的意思就是通过id降序的形式找出id大于5的所有记录。
热心网友
时间:2022-04-07 21:41
oracle: 两种都支持
sqlserver:只支持第二种
1. select * from tablename order by decode(colname,'指定值','指定最大值') ;
2.elect * from tablename order by case colname when '指定值' then '指定最大值' end;
热心网友
时间:2022-04-07 23:32
select t.*
from
(
select *,1 as pri from 表 where 关键字段='你指定记录的值'
union all
select *,2 as pri from 表 where 关键字段<>'你指定记录的值'
) t
order by t.pri desc
热心网友
时间:2022-04-08 01:40
这个简单啊
比如你的表字段为 COL1 COL2 COL3 该记录值为 1 2 3
你这样
select * from tb order by case when col1=1 and col2=2 and col3=3 then o else 1 end
热心网友
时间:2022-04-08 04:05
select *
from
(
select *,1 as pri from 表 where id='你指定记录的值'
union all
select *,2 as pri from 表 where id<>'你指定记录的值'
) t
order by pri desc
这个是可以实现的
热心网友
时间:2022-04-08 06:46
用union
假设你要把id为123的这条记录排在最后
select * from t1 where id<>123
union
select * from t1 where id=123
热心网友
时间:2022-04-08 09:44
做个union就可以,先把其他的select 出来,union下就可以放在最后了
热心网友
时间:2022-04-08 12:59
用order by 排序
条件就是你想排在后面数据的那些关键性字段
热心网友
时间:2022-04-08 16:30
运用GO到你所指定的记录然后用GO BOTTOM
热心网友
时间:2022-04-08 20:18
select * from tabA
order by case when id=该行的ID then 1 else 0 end