sql 按字段指定值排序

2025-02-26 11:06:54
推荐回答(5个)
回答1:

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

回答2:

这个需要在排序语句中使用条件判断

例如:表【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

回答3:

在MSSQL支持CASE,使用以下语句实现
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 > 筛选和排序 > 按自定义次序对记录排序

回答4:

在select语句后面加上 order by A1 desc是降序
order by A1 asc是升序;

回答5:

order by 字句中使用case

select *
from table1
order by case A1 when 'a2' then 1 when 'a3' then 2 when 'a1' then 3 end