select
top
10
from
表名
order
by
排序列
desc;
sql的执行顺序先按照你的要求排序,然后才返回查询的内容。例如有一个名为id自动增长的列,表中有100条数据,列的值得分别是1、2、3、4………9、99、100。那么查询加了desc你得到的是91到100条,就是最后十条,如果加asc你得到的将会是1到10,也就是最前面的那几条。
② 按字段里边的指定值排序方法
sql语句的排序,有止是
asc,desc
简单的正序、倒序排列,还可以根据需要字段的值,来执行排序。可使用如下方式:
1.点击新建查询:
2.输入如下语句:
order by
case `a1`
when
a2 then 1 // 当值为a2,排在第一个
when a3
then 2 // 当值为a3,排在第二个
when a1
then 3 // 当值为a1,排在第三个
end
asc // 按上面顺序,正序排列(也可为desc)
order
by
语句用于根据指定的列对结果集进行排序。
order
by
语句默认按照升序对记录进行排序。
如果希望按照降序对记录进行排序,可以使用
desc
关键字。
拓展资料:
sql常见语句
更新:update
table1
set
field1=value1
where
范围
查找:select
*
from
table1
where
field1
like
’%value1%’
(所有包含‘value1’这个模式的字符串)
排序:select
*
from
table1
order
by
field1,field2
[desc]
求和:select
sum(field1)
as
sumvalue
from
table1
平均:select
avg(field1)
as
avgvalue
from
table1
最大:select
max(field1)
as
maxvalue
from
table1
最小:select
min(field1)
as
minvalue
from
table1[separator]
参考资料:
网络
sql
order
by
③ 用SQL语句实现一部分内容正序,一部分内容倒序
我也是菜鸟,呵呵。但我想了一下,你可以尝试一下用创建临时表+游标的形式解决。虽然笨了点,但能够完成你的要求。
select * into #Templtable1
from customer
where result='待完成'
order by enddate desc
DECLARE @变量 nvarchar(10) --定义你表里的字段,有几个定义几个
DECLARE MSTemp_customer_cursor CURSOR FOR
SELECT *
FROM customer
where result='完成' order by enddate asc
Open MSTemp_customer_cursor
FETCH NEXT FROM MSTemp_customer_cursor
INTO @变量
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO #TempTable1 Values(@变量)
FETCH NEXT FROM MSTemp_customer_cursor
INTO @变量
END
CLOSE MSTemp_customer_cursor
DEALLOCATE MSTemp_customer_cursor
Select * from #TempTable1
Go
不知道行不行,你调试一下。
前提:你的临时表 #TempTable1 是不存在的,要不你就换个临时表名。
④ sql server 怎么排序
排序可以是升序的 (ASC),也可以是降序的 (DESC)。如果未指定是升序还是降序,就假定为 ASC。
下面的查询返回按 ProctID 升序排序的结果:
代码如下 复制代码
USE AdventureWorks2008R2;
GO
SELECT ProctID, ProctLine, ProctModelID
FROM Proction.Proct
ORDER BY ProctID;
如果 ORDER BY 子句中指定了多个列,则排序是嵌套的。下面的语句先按产品子类别降序排序 Proction.Proct 表中的行,然后在每个产品子类别中按 ListPrice 升序排序这些行。
代码如下 复制代码
USE AdventureWorks2008R2;
GO
SELECT ProctID, ProctSubcategoryID, ListPrice
FROM Proction.Proct
ORDER BY ProctSubcategoryID DESC, ListPrice;
问题
同一个查询的结果集为什麽有时候是按他想要的顺序排列,有时候又不是,或者是在SQL2000里是这个顺序,到了SQL2005/2008又是那个顺序?
其实,只要语句里没有指定“order by”,SQLSERVER并不会按照顺序返回的。有可能你的表里有一个字段已经建立了索引
你想结果集按照那个建立了索引的字段排序,那么你不指定“order by”是没有问题的,因为表的存储顺序就是按照那个字段
的顺序排好序了,所以可以不指定“order by”,但是如果你没有在想排序的那个字段建立索引,或者在SQL2000里建立了
索引,而在SQL2005/2008里没有建立索引,那么就要明确地用“order by”指定。如果你没有指定,哪怕一模一样的查询,
结果集顺序这一次和上一次不一样是很正常的。
⑤ sql语句中对一个字段排序,字段中含有字符串和数字,(怎根据数字进行排序)
order by 字段名称+0 desc/asc的形式进行排序
order by 字段名称*1 desc/asc的形式进行排序
⑥ 数据库按从小到大的顺序排列sql怎么写
在select 语句结尾使用: order by 字段1 ASC/DESC,字段2 ASC/DESC ...
ASC为正序从小到大,DESC为倒序从大到小。
⑦ SQL排序问题
sql排序的规则是,按照第一个字段的顺序正序或倒序排列,
当第一个字段是相同的,那么会按照第二个字段的正序或倒序排列
依次类推,如果后面没有排序字段,会随机排列
所以,按照第一个字段倒序,按照第二个字段正序排列,结果视觉显示全部到序,原因可能是
第一个字段并无相同的,且第一个字段和第二个排序字段数值的增减是成反比的。
⑧ sql 按字段指定值排序
sql语句的排序,有止是 asc,desc 简单的正序、倒序排列,还可以根据需要字段的值,来执行排序。可使用如下方式:
1.点击新建查询:
2.输入如下语句:
orderby
case`A1`
when a2then1//当值为a2,排在第一个
whena3 then2//当值为a3,排在第二个
whena1 then3//当值为a1,排在第三个
end
asc//按上面顺序,正序排列(也可为desc)
ORDER BY 语句用于根据指定的列对结果集进行排序。
ORDER BY 语句默认按照升序对记录进行排序。
如果希望按照降序对记录进行排序,可以使用 DESC 关键字。
拓展资料:
sql常见语句
更新:update table1 set field1=value1 where 范围
查找:select * from table1 where field1 like ’%value1%’ (所有包含‘value1’这个模式的字符串)
排序:select * from table1 order by field1,field2 [desc]
求和:select sum(field1) as sumvalue from table1
平均:select avg(field1) as avgvalue from table1
最大:select max(field1) as maxvalue from table1
最小:select min(field1) as minvalue from table1[separator]
⑨ sql按某个字段值顺序排序
升序:select * from 表名 order by 表中的字段 asc(MySQL中默认是升序排列,可不写) ;
降序:select * from 表名 order by 表中的字段 desc ;