sql如何根据字段内的某个值排序

2020-11-30 06:52:25 字数 6088 阅读 6741

1楼:

这个正则表达式就可以筛选出数字部分,但是每种数据库用法都是不一样的

再根据筛选出来的这个伪劣来排序就好了

2楼:

可以截取后面的数字用着排序字段

sql 按字段指定值排序

3楼:匿名用户

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

例如:表【table_temp】中列【col1】为字符,属性为varchar(10),排序时需要按照b、a、c的顺序显示,则可按照以下sql语句:

select

*from

table_temp

orderby

case

whencol1='b'then1

whencol1='a'then2

whencol1='c'then3end

4楼:千鸟

sql语句的排序,有止是 asc,desc 简单的正序、倒序排列,还可以根据需要字段的值,来执行排序。可使用如下方式:

1.点击新建查询:

2.输入如下语句:

orderby

case`a1`

when a2then1//当值为a2,排在第一个

whena3 then2//当值为a3,排在第二个

whena1 then3//当值为a1,排在第三个

endasc//按上面顺序,正序排列(也可为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]

5楼:匿名用户

在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 > 筛选和排序 > 按自定义次序对记录排序

6楼:沉默用户

order by 字句中使用case

select *

from table1

order by case a1 when 'a2' then 1 when 'a3' then 2 when 'a1' then 3 end

7楼:匿名用户

你可以加上一个计算列,将它转换成可排序的,比如在oracle中可依这样

select table1.*,decode(table1.a1,'a2' ,1,'a3',2,'a1',3,0)xx from table1 order by xx

8楼:匿名用户

select * from dbo.table1where a1= 'a1'

union

select * from dbo.table1where a1<> 'a1'

order by a1 desc试一下

9楼:匿名用户

在select语句后面加上 order by a1 desc是降序

order by a1 asc是升序;

sql 按照列的指定值排序

10楼:匿名用户

需要子查询。

在里面曾,先判断 case when a=4 then '0'

when a=2 then '1'

when a=0 then '2'

////

最后在再外层,使用这个判断好的值,进行排序就好了。

11楼:腾云浮流水

select a from 表

order by (a%2),a desc

sqlserver按照某个字段的值排序,但是需要剔除里面某些值怎么写

12楼:哈哈我结婚啦

在order by之前写,where aaa<>2!不用谢我 我是雷锋,这些都是最基础的sql用法,你还需努力啊

13楼:匿名用户

判断条件加上aaa不等于2就可以了。

14楼:匿名用户

select * from 表名 where aaa<>'2' order by aaa

sql语句如何 按指定的某列的摸个值排序

15楼:匿名用户

--用orderby+casewhenwithttas

(select'a'asf1unionallselect'b'asf1unionallselect'c'asf1unionallselect'd'asf1unionallselect'e'asf1

)select*fromtt

orderby(casef1when'b'then1when'd'then2when'c'then5when'd'then4else999end)

有问题追问

16楼:情到深处有泪涌

select * from 表名 order by 列名

sql 如何根据两个字段排序

17楼:藤阁美人

1、首先建一张测试表coal_blead,里面有多个字段2、我们输入“select * from coal_blead order by q***,price”语句,按q***,price字段进行升序排序

3、我们输入“select * from coal_blead order by q*** desc,price desc”语句,先按q***字段进行降序,再按price字段进行降序

4、输入“select * from coal_blead order by q*** desc,price asc”语句,先按q***字段降序,再按price字段进行升序

5、如果我们想对更多的字段进行排序,可以进行添加

18楼:great佯装埋倦

order by 后可加2个字段,用英文逗号隔开。

1、f1用升序, f2降序,sql该这样写;

orderbyf1,f2desc2、也可以这样写,更清楚;

orderbyf1asc,f2desc3、如果都用降序,必须用两个desc;

orderbyf1desc,f2desc

19楼:匿名用户

order by是可以有多个字段的

比如order by 条件1 desc,条件2 asc都可以的(这样优先排条件1)

20楼:匿名用户

根据order by就可以了,可多个字段排序

比如order by 条件1 desc,条件2 asc,根据需要选择升序或降序。

21楼:匿名用户

selecta.id,b.idfromtablea,table1bwherea.id=b.idorderbya.id1,b.id2,desc

22楼:匿名用户

两个地方显示??你要的查询结果是显示在同一张表里吗?

23楼:匿名用户

貌似可以直接 order by 字段1 desc, 字段2 asc?

sql如何按照一个字段的某一部分排序? 20

24楼:匿名用户

你 使用的是什么数据库? oarcle?mysql?sqlservr?

思路 :先转化为 字符串,截取前面10位 如 order by subtring(0,cast(date as varchar(22)),10)

25楼:盖昆明委琨

一楼的是固定长度的

要是之前或之后长度都不固定,可以这样写

instr(str,'/',0,-1)找到'/'的位置select

substr(

str,instr(str,'/',1,1)-2,5)from

……这句话是取/附近5个字符的**!

有此数据库不支持instr可以用:

charindex

sql语句中对一个字段排序,字段中含有字符串和数字,(怎根据数字进行排序)

26楼:匿名用户

假如表为test,name字段存放班级

,**如下:

select id,name,substring_index(name, '班级',1) as num

from test

order by num asc

27楼:匿名用户

order by 字段名称+0 desc/asc的形式进行排序

order by 字段名称*1 desc/asc的形式进行排序

如何根据mysql数据库中的某一个字段进行排序呢??

28楼:汪雄辉拉

例如你表名 为test,sql 如下:

select * from test order by `order` desc-----------------根据order降序排列,去掉末尾的desc就是升

序注:order为关键字,所以字段order需要用反引号括起来,不然报错

29楼:time岚忆

先把分类全取出来,并随机排序,取排在第一个分类。

例如:西装

然后查询的时候 order by (category='西装') desc,category 即可实现要求。

mysql是一种开放源**的关系型数据库管理系统(rdbms),mysql数据库系统使用最常用的数据库管理语言--结构化查询语言(sql)进行数据库管理。

mysql这个名字,起源不是很明确。一个比较有影响的说法是,基本指南和大量的库和工具带有前缀“my”已经有10年以上,而且不管怎样,mysql ab创始人之一的monty widenius的女儿也叫my。这两个到底是哪一个给出了mysql这个名字至今依然是个迷,包括开发者在内也不知道。

mysql的海豚标志的名字叫“sakila”,它是由mysql ab的创始人从用户在“海豚命名”的竞赛中建议的大量的名字表中选出的。获胜的名字是由来自非洲斯威士兰的开源软件开发者ambrose twebaze提供。根据ambrose所说,sakila来自一种叫siswati的斯威士兰方言,也是在ambrose的家乡乌干达附近的坦桑尼亚的arusha的一个小镇的名字。

mysql,虽然功能未必很强大,但因为它的开源、广泛传播,导致很多人都了解到这个数据库。它的历史也富有传奇性。

sql排序方式要根据另表的某个字段排序怎么实现

1楼 匿名用户 可以通过两个表的关系,然后通过字段关联的形式排序。sql select t1 from tablename1 t1 tablename2 t2 wehere t1 id t2 id order by t2 name 解释 实际上上面语句会通过 tablename2表的name字段先排...

如何统计SQL中某字段总数和符合某条件的数量

1楼 匿名用户 输入 select 名称 count as 总数量 count case when 类型 a then 类型 else null end as 类型为a的数 from 表名 group by 名称。 就可以统计sql中某字段总数和符合某条件的数量。 结构化查询语言 英文简称 sql ...

怎么查询表中某个字段相同值的记录数大于1的记录

1楼 匿名用户 表结构呢? select from tab where 商品编码 in select 商品编码 from tab group by 商品编码 having count 1 2楼 匿名用户 select 商品编码 ,count from 表名 guoup by 商品编码 having ...