sql 按字段指定值排序
数据库为Access 展开
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
这个需要在排序语句中使用条件判断
例如:表【Table_temp】中列【col1】为字符,属性为varchar(10),排序时需要按照B、A、C的顺序显示,则可按照以下SQL语句:
select
*
from
Table_temp
order by
case
when col1='B' then 1
when col1='A' then 2
when col1='C' then 3
end
SELECT 表1.id, 表1.n
FROM 表1
ORDER BY CASE n WHEN 'a2' THEN 1 WHEN 'a1' THEN 2 WHEN 'a3' THEN 3 END;
在Access中使用IIF来实现,如下:
SELECT 表1.id, 表1.n
FROM 表1
ORDER BY IIF(n='a2',1,IIF(n='a3',2,3));
可参考Access帮助文件中的
Access > 筛选和排序 > 按自定义次序对记录排序
order by A1 asc是升序;
select *
from table1
order by case A1 when 'a2' then 1 when 'a3' then 2 when 'a1' then 3 end