SQL查询语句如何能够让指定的记录排在最后
如题,该记录在排序上是没有突出特点的,它每一字段的值都知道,其余字段则不确定,在不修改的情况下,如何用一条SQL查询查出所有记录并把该记录排在最后呢?手误,应该是“其余记...
如题,该记录在排序上是没有突出特点的,它每一字段的值都知道,其余字段则不确定,在不修改的情况下,如何用一条SQL查询查出所有记录并把该记录排在最后呢?
手误,应该是“其余记录则不确定”。 展开
手误,应该是“其余记录则不确定”。 展开
11个回答
展开全部
方橘游法如下:
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谁在前面也燃高是不确定的
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谁在前面也燃高是不确定的
展开全部
通常通过排序实现。
解释:既然是特定的记录,必然有其特殊性,可以通过此特殊性条件,用order by语句进耐含行排序实现记录的顺序调整。
sql:select * from tablename where id>5 order by id DESE;本句话的意思就是昌汪笑通陵闷过id降序的形式找出id大于5的所有记录。
解释:既然是特定的记录,必然有其特殊性,可以通过此特殊性条件,用order by语句进耐含行排序实现记录的顺序调整。
sql:select * from tablename where id>5 order by id DESE;本句话的意思就是昌汪笑通陵闷过id降序的形式找出id大于5的所有记录。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
oracle: 两种都支镇迹持
sqlserver:只支持御旦并第二种
1. select * from tablename order by decode(colname,'指定值','指定最大值') ;
2.elect * from tablename order by case colname when '指定值' then '迟败指定最大值' end;
sqlserver:只支持御旦并第二种
1. select * from tablename order by decode(colname,'指定值','指定最大值') ;
2.elect * from tablename order by case colname when '指定值' then '迟败指定最大值' end;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select t.*
from
(
select *,1 as pri from 表 where 关键姿竖字迹旦大段='你指定记录的值'
union all
select *,2 as pri from 表 where 关键迟扰字段<>'你指定记录的值'
) t
order by t.pri desc
from
(
select *,1 as pri from 表 where 关键姿竖字迹旦大段='你指定记录的值'
union all
select *,2 as pri from 表 where 关键迟扰字段<>'你指定记录的值'
) t
order by t.pri desc
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个简单啊
比山搏纤如你的表字段为逗仿 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
比山搏纤如你的表字段为逗仿 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
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询