sql 按字段指定值排序

比如数据库表table1中有为A1的字段名,A1中的值只有如下几种情况:a1,a2,a3,现需按a2,a3,a1的顺序排序,显示数据行,请问有没有直接操作的SQL语句,请... 比如数据库表table1中有为A1的字段名,A1中的值只有如下几种情况:a1,a2,a3,现需按a2,a3,a1的顺序排序,显示数据行,请问有没有直接操作的SQL语句,请大侠指教,十分感谢!
数据库为Access
展开
 我来答
千鸟05020305
2018-07-08 · TA获得超过1万个赞
知道答主
回答量:72
采纳率:0%
帮助的人:1.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

SQL的艺术
2019-04-02 · SQL写多了就会在追求极致
SQL的艺术
采纳数:2040 获赞数:3322

向TA提问 私信TA
展开全部

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

例如:表【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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
realsex
2008-08-01 · TA获得超过1259个赞
知道小有建树答主
回答量:717
采纳率:0%
帮助的人:500万
展开全部
在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 > 筛选和排序 > 按自定义次序对记录排序
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lovefeiyiran
2008-08-01 · TA获得超过1048个赞
知道小有建树答主
回答量:808
采纳率:0%
帮助的人:437万
展开全部
在select语句后面加上 order by A1 desc是降序
order by A1 asc是升序;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友5c91d28
2008-08-01 · TA获得超过5084个赞
知道大有可为答主
回答量:1916
采纳率:50%
帮助的人:1685万
展开全部
order by 字句中使用case

select *
from table1
order by case A1 when 'a2' then 1 when 'a3' then 2 when 'a1' then 3 end
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式