SQL查询语句如何能够让指定的记录排在最后

如题,该记录在排序上是没有突出特点的,它每一字段的值都知道,其余字段则不确定,在不修改的情况下,如何用一条SQL查询查出所有记录并把该记录排在最后呢?手误,应该是“其余记... 如题,该记录在排序上是没有突出特点的,它每一字段的值都知道,其余字段则不确定,在不修改的情况下,如何用一条SQL查询查出所有记录并把该记录排在最后呢?
手误,应该是“其余记录则不确定”。
展开
 我来答
catm3
推荐于2018-02-28 · TA获得超过511个赞
知道小有建树答主
回答量:234
采纳率:100%
帮助的人:357万
展开全部
方法如下:
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谁在前面也是不确定的
198901245631
推荐于2016-09-16 · TA获得超过3.5万个赞
知道大有可为答主
回答量:9037
采纳率:92%
帮助的人:1694万
展开全部
通常通过排序实现。
解释:既然是特定的记录,必然有其特殊性,可以通过此特殊性条件,用order by语句进行排序实现记录的顺序调整。
sql:select * from tablename where id>5 order by id DESE;本句话的意思就是通过id降序的形式找出id大于5的所有记录。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
石亮东
2010-08-09 · TA获得超过1217个赞
知道小有建树答主
回答量:2022
采纳率:66%
帮助的人:1400万
展开全部
oracle: 两种都支持
sqlserver:只支持第二种
1. select * from tablename order by decode(colname,'指定值','指定最大值') ;

2.elect * from tablename order by case colname when '指定值' then '指定最大值' end;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
vinson_shen
2010-08-05 · TA获得超过2503个赞
知道小有建树答主
回答量:960
采纳率:100%
帮助的人:0
展开全部
select t.*
from
(
select *,1 as pri from 表 where 关键字段='你指定记录的值'
union all
select *,2 as pri from 表 where 关键字段<>'你指定记录的值'
) t
order by t.pri desc
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
feixianxxx
推荐于2016-04-26 · TA获得超过2202个赞
知道大有可为答主
回答量:1273
采纳率:100%
帮助的人:1745万
展开全部
这个简单啊

比如你的表字段为 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
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(9)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式