SQL查询的排序问题
请教一下各位高手,小弟有一点SQL方面的问题,我要针对一个指定的数据表来查询一些字段,select*from表where字段in(x1,x2,x3,x4.....)我希望...
请教一下各位高手,小弟有一点SQL方面的问题,我要针对一个指定的数据表来查询一些字段,select * from 表 where 字段 in
(x1,x2,x3,x4.....)
我希望查询的结果是按照我条件中的x1,x2,x3的顺序来排序的,但是x1,x2,x3的本身的顺序不是按照升序降序的,而是不固定的,也不能把他们给排序好了再查询,不知道有没有办法实现呢?请大家帮忙了!
比如说
select * from table where batchnbr in (2133,1244,1334,0012,5422)
就是()中的条件,顺序不是固定的,我也没办法都给排序了,因为我要按照这个顺序,再把得到的结果送回我需要的地方,至于order by我知道的,但是如果按照order by batchnbr来选择,那么得到的结果,肯定是按照batchnbr的顺序来排列,但是我希望得到的结果是按照
batnbr xxx xxx xxx
2133 xxx xxx xxx
1244 xxx xxx xxx
1334 xxx xxx xxx
0012 xxx xxx xxx
5422 xxx xxx xxx
这样显示的,不知道能不能做到 展开
(x1,x2,x3,x4.....)
我希望查询的结果是按照我条件中的x1,x2,x3的顺序来排序的,但是x1,x2,x3的本身的顺序不是按照升序降序的,而是不固定的,也不能把他们给排序好了再查询,不知道有没有办法实现呢?请大家帮忙了!
比如说
select * from table where batchnbr in (2133,1244,1334,0012,5422)
就是()中的条件,顺序不是固定的,我也没办法都给排序了,因为我要按照这个顺序,再把得到的结果送回我需要的地方,至于order by我知道的,但是如果按照order by batchnbr来选择,那么得到的结果,肯定是按照batchnbr的顺序来排列,但是我希望得到的结果是按照
batnbr xxx xxx xxx
2133 xxx xxx xxx
1244 xxx xxx xxx
1334 xxx xxx xxx
0012 xxx xxx xxx
5422 xxx xxx xxx
这样显示的,不知道能不能做到 展开
展开全部
select * from 表 where 字段 in (x1,x2,x3,x4.....) order by 字段 ASC/DESC
此中排序字段是索引条件中字段,ASC为升序,DESC为降序,此中的排列会以X1,X2,X3排序,但X1可能有很多数据,如果在X1内部排序,请加上第二排序。
select * from 表 where 字段 in (x1,x2,x3,x4.....) order by 字段 ASC/DESC,字段2 ASC/DESC
此表达式是在X1,X2等排序的基础上再按字段2进行排序!
我就不明白,如何是多数据,X1,X2等又包含多个条记录,你就不想用Group呢?
你想看一下group by 的使用方法,对时可以对分组条件进行限定,关键词是having,使用方法类where,但与where是有区别的!
此中排序字段是索引条件中字段,ASC为升序,DESC为降序,此中的排列会以X1,X2,X3排序,但X1可能有很多数据,如果在X1内部排序,请加上第二排序。
select * from 表 where 字段 in (x1,x2,x3,x4.....) order by 字段 ASC/DESC,字段2 ASC/DESC
此表达式是在X1,X2等排序的基础上再按字段2进行排序!
我就不明白,如何是多数据,X1,X2等又包含多个条记录,你就不想用Group呢?
你想看一下group by 的使用方法,对时可以对分组条件进行限定,关键词是having,使用方法类where,但与where是有区别的!
展开全部
你这描述有问题吧,查询职工平均工作量,不应该是所有工作总量除以总人数吗?
这得出来就一个数啊,还排啥序?你的问题应该是统计每个职工的工作量再排序吧?
SELECT
zgID,
COUNT(cdWORK)
`total_work`
FROM
表名
GROUP
BY
zgID
ORDER
BY
`total_work`
DESC;
这得出来就一个数啊,还排啥序?你的问题应该是统计每个职工的工作量再排序吧?
SELECT
zgID,
COUNT(cdWORK)
`total_work`
FROM
表名
GROUP
BY
zgID
ORDER
BY
`total_work`
DESC;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * from table where id in (18000,29938,1146,42718,1358) order by decode(id,'18000',1,'29938',2,'1146',3,'42718',4,'1358',5);
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
SELECT
*,
RANK()
OVER
(ORDER
BY
OrderDate)
AS
编号
FROM
yourTable
用
RANK()
OVER
(ORDER
BY
字段)
函数,会报警,但可运行出结果,网站上可以直接用。
*,
RANK()
OVER
(ORDER
BY
OrderDate)
AS
编号
FROM
yourTable
用
RANK()
OVER
(ORDER
BY
字段)
函数,会报警,但可运行出结果,网站上可以直接用。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select
*
from
表
order
by
排序字段(你的datetime字段名称)
desc(倒序).
*
from
表
order
by
排序字段(你的datetime字段名称)
desc(倒序).
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询