mysql排序问题的sql语句

有一个字段A,字段值有可能相同,写一个sql语句,将相同的值尽量分隔开。例如字段A的值:1,1,1,2,3,3;查询结果要求为:1,2,3,1,3,1.请问sql怎么写?

suannai0314
鹳狸媛 楼主的这个问题解决了么?下边的答案能解决问题么?如果可以麻烦点击答案旁的√采纳哦~如果没有也可以将自己的答案贴上然后进行采纳的。
大约 6 年之前 回复

3个回答

没有直接的sql,建议取值后写程序排序

同意楼上说法,sql没有这样的排序

一直使用oracle、sqlserver,没用过mysql了。
这个查询,oracle、sqlserver都是可以实现的,说下oracle、sqlserver的实现方式,希望对你有帮助。
例如,你查询的表为t_test_table

select *
from  (
    select t2.*,
        t2.denserank || t2.A AS denserank_A
    from  ( 
        select t1.*, 
            DENSE_RANK() OVER(ORDER BY t1.A ) AS denserank
         from t_test_table t1
    ) t2
) t3
order by t3.denserank_A
;

(目前在家,无数据库运行环境,如果有个别拼写错误,请见谅)

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
mysql语句排序问题?
请问下中文的数字怎样实现排序?比如像一组,二组,三组,四组…………怎样使用mysql语句进行升序排序?
SQL语句排序问题
不选择文件夹查询时,可以查询出所有的文件,但没有按日期升序来排,想把它按创建时间的从最新到最早排列rnrn这个要怎么写我是新手.请高手指教一下rn
SQL 语句排序问题
有一个表 newsrn有三个字段 Id Name Typern有数据 1 a 国际rn 2 ae 国内rn 3 abc 国内rn 4 aec 国际rn我要让它的排序时按照Name字段中数据的长短(比方说:a就是1 ae就是2 abc就是3 )排列出来rn但是在abc 和 aec 这是同一个级别上的时候国际的要在国内的前面!rnrn谢谢各位大哥了 这是我的面试题目啊 我就靠它吃饭了啊!!
sql语句排序问题
表A,有一字段filename(nvarchar(200)),里面存的是文件名称,格式如cc.rar、xx.cs。rn如何写一条sql查询语句,要求查出的结果按文件的扩展名(就是点后面的名称)排序?
SQL语句排序的问题
[code=SQL]rncreate table EmployeeInfo(id int ,EmpName varchar(20),EmpDate varchar(10),EmpPlace varchar(20))rninsert into EmployeeInfo values(1,'人员1','2012-09-25','北京');rninsert into EmployeeInfo values(2,'人员2','2012-09-26','北京');rninsert into EmployeeInfo values(3,'人员3','2012-09-26','北京');rninsert into EmployeeInfo values(4,'人员4','2012-09-25','上海');rninsert into EmployeeInfo values(5,'人员5','2012-09-25','广州');rninsert into EmployeeInfo values(6,'人员6','2012-09-26','上海');rn[/code]rnrnSQL语句排序的问题 要求按时期升序,并且同一天的人员按 北京-->上海-->广洲 的顺序显示
SQL语句排序问题!!!
有表room,表项为fanghao,taihaornrn但是fanghao为字符串,现在想当其其为整数来排序显示结果rnSQL怎么写???rn急!!!
******SQL 语句排序问题
A表(注意时间)rnid name ispic createtimern1 中国 1 2009-01-03rn2 上海 1 2009-02-03rn3 西安 0 2008-03-04rn4 河南 0 2009-05-23rn5 台湾 0 2009-04-02rn6 琉球 1 2007-02-02rnrnB表(记录A表记录的刷新时间表,注:AB两表关系是一对多)rnaid refreshrn3 2009-05-24 rn6 2009-05-29rn6 2009-06-01rnrn要求:实现A表中的数据先按B表的刷新时间排序,再按A表的creatime时间排列rnrnid name ispic createtimern6 琉球 1 2007-02-02 --因为刷新时间最新为2009-06-01rn3 西安 0 2008-03-04rn4 河南 0 2009-05-23rn5 台湾 0 2009-04-02rn2 上海 1 2009-02-03rn1 中国 1 2009-01-03rnrn
sql 语句排序的问题
SELECT * FROM BASE_A ORDER BY DELIVERYLIMIT asc, PRODUCTNO, COLOUR , DIMENSION ascrn 表 字段1 字段2 字段3 字段4rn在查询中排序,前3个字段都可以正常的排序,字段4是数字和字母的组合列,怎么让字段4按A-Z,0-9的顺序排出来,而且还不影响其它的排序规则????rnrn请高手给个答案,谢谢!!!
sql语句 排序问题
我有3个字段,Month,Day,Hour,想是想在DataTable里时,先是按Month,再按Day,再按Hour,但是order by Month,Day,Hour 出来的结果 Hour没有按升序排列
=============================>>>sql语句排序问题
sql server中有一字段为vchar型,用来记录日期格式数据,如:2007-3,2006-12。rnrn但前台显示时需要用到该字段以日期型来排序。应该怎么写sql语句。
MySQL Union语句排序问题
MySQL Union语句排序问题 之前项目中用MySQL数据库的Union语句进行多表联查时,出现了 order by 语句失效的问题。查询了很多资料,发现大部分都无法解决问题,最后终于在某个论坛上找到正确的解决方法。由于时间隔得有点久了,无法贴上原帖网址。这里就自己写个小文章分享一下。 通常我们会用 union 连接多个select语句,select子句的order by 要和limit联合使...
mysql sql语句问题
在mssql中 若要实现数据集字符串累加 如下语句rndelcare @s nvarchar(max)rnselect @s = @s + name + ',' from t_demorn若查询有多条记录,rn则@s结果会是:a,b,c,d,e这样的字符串rn这样语句就免去了做游标遍历rnrn还请问下 这样语句 在mysql中如何实现rn我写成rnselect @s + name +',' into @s from t_demorn会提示报错,错误说是赋值里面返回多条记录rnrn这里还请教下 大家 谢谢。。。。
mysql的sql语句问题
String sql03="select * from corporation,duty where category='兼职' and duty.comname_id=corporation.comname_id order by ftime desc";rn这句sql语句中的category='兼职'不要这个限制,可以查询,但是要了这个限制就不能查询,我想可能是中文问题,不知道sql的中文该怎么转换。谢谢!
MySQL的sql语句的问题
用户表(userinfo)nuserIDnuserNamen评论表(comment)ncommentIDncommentContent(评论内容)ncommentator(评论人ID)ncoverCommentator(被评论人ID)nn其中评论人ID和被评论人ID都是用户IDn请问一下,联表查询怎么查n弄成这样的n![图片说明](https://img-ask.csdn.net/upload/201712/02/1512198630_485500.jpg)
mysql的sql语句的问题
create table roles(rn id int auto_increment,rn rolesname varchar(15) not null unique,rn primary key(id)rn);rnrnrncreate table rolesright(rn id int auto_increment,rn rolesid int references roles(id),rn rightid int references right(id),rn primary key(id)rn);rnrncreate table right(rn id int auto_increment,rn rightname varchar(20) not null,rn url varchar(50),rn primary key(id)rn);rn这上面的语句有错误吗?总是出现错误
求mysql排序语句
rncreate table bmrn(rnzd1 varchar(10),rnzd2 varchar(100),rnzd3 varchar(100),rnzdj1 varchar(10),rnzdj2 varchar(10),rnzdj3 varchar(10)rn)rn rnrnINSERT INTO bm (zd1,zd2,zd3,zdj1,zdj2,zdj3) VALUES ('不限','','','12.3','','')rnINSERT INTO bm (zd1,zd2,zd3,zdj1,zdj2,zdj3) VALUES ('自定义','天津市、吉林省','南开区、通化市','','13','8.5')rnINSERT INTO bm (zd1,zd2,zd3,zdj1,zdj2,zdj3) VALUES ('自定义','北京市、天津市','','','9','')rnINSERT INTO bm (zd1,zd2,zd3,zdj1,zdj2,zdj3) VALUES ('自定义','北京市、天津市','崇文区、南开区','','2.7','11')rnINSERT INTO bm (zd1,zd2,zd3,zdj1,zdj2,zdj3) VALUES ('自定义','北京市、天津市','大港区','','10.6','17')rnrnrnrn(我下面的语句获取的是符合条件的值相加后倒序结果,不是我要的,我要的是符合条件的单一字段值倒序结果,并取得这个最大值)rn要得到结果:rn[img=https://img-bbs.csdn.net/upload/201410/31/1414760946_950508.png][/img]rn rnrnrn我尝试用这样的语句获取,但不是我想要的rnSELECT zd1,zd2,zd3,zdj1,zdj2,zdj3,rn(rn IF(LOCATE('不限',zd1),zdj1,0) + rn IF(LOCATE('北京市',zd2),zdj2,0) + IF(LOCATE('天津市',zd2),zdj2,0) + rn IF(LOCATE('崇文区',zd3),zdj3,0) + IF(LOCATE('南开区',zd3),zdj3,0)rn) AS score rnFROM bmrnWHERE (rn (zd1 LIKE '%不限%') OR rn (zd2 LIKE '%北京市%') OR (zd2 LIKE '%天津市%') OR rn (zd3 LIKE '%崇文区%') OR (zd3 LIKE '%南开区%')rn) rnORDER BY score DESC
mysql 语句实现排序
在MYSQL中有一有表,rnid tab1 tab2 tab3 tab4 tab5rn1 1 2 3 4 5rn2 3 1 2 2 2rn3 10 13 5 4 9rn4 11 8 7 6 5rnrn结果:rnid tabrn3 13rn4 11rn5 10rn3 9rn4 8rn6 7rnrn有没有用SQL语句实现的??rn我现在的思路是Select 5次,然后再对查询结果进行排序 ,可是这样太慢了,有没有别的方法??
MySQL in语句排序
//方法一 SELECT*FROM tablename WHERE id IN(2,3,1)ORDER BY INSTR(',"2,3,1",',CONCAT(',',id,',')); //方法二 SELECT*FROM tablename WHERE id IN(2,3,1)ORDER BY FIND_IN_SET(id,"2,3,1"); //方法三 SELECT*...
mysql in语句的排序探讨
mysql 5.xrnrnsql 1 : select id from table where id in(3,6,5,2);rn此语句所得结果将默认升序排列。如以下rnidrn===rn2rn3rn5rn6rn===rnsql 2 : select id from table where id in(3,6,5,2) order by substring_index('3,6,5,2',id,1);即可得到以下排序rnidrn====rn3rn6rn5rn2rn======rn将substring_index(...)变成abs(substring_index(....))都不能得到如上排列。rn请大家帮忙解释以下sql 2是如何工作的。
mysql语句排序求救。
A表:rnCREATE TABLE `a` (rn `aid` int(11) NOT NULL,rn `astate` int(1) NOT NULLrn) ENGINE=InnoDB DEFAULT CHARSET=utf8;rnrnINSERT INTO `a` (`aid`, `astate`) VALUESrn(1, 1),rn(2, 1),rn(3, 1);rnrnrnB表:rnCREATE TABLE `b` (rn `bid` int(11) NOT NULL,rn `bfield` varchar(255) NOT NULLrn) ENGINE=InnoDB DEFAULT CHARSET=utf8;rnrnINSERT INTO `b` (`bid`, `bfield`) VALUESrn(1, 'f1 '),rn(2, 'f2 '),rn(3, 'f3 '),rn(4, 'f4 ');rnrnrnC表:rnCREATE TABLE `c` (rn `cid` int(11) NOT NULL,rn `aid` int(11) NOT NULL,rn `bid` int(11) NOT NULL,rn `cvalue` varchar(255) NOT NULLrn) ENGINE=InnoDB DEFAULT CHARSET=utf8;rnrnINSERT INTO `c` (`cid`, `aid`, `bid`, `cvalue`) VALUESrn(1, 1, 1, 'v11 '),rn(2, 1, 2, 'v12 '),rn(3, 1, 3, 'v13 '),rn(4, 2, 1, 'v31 '),rn(5, 2, 2, 'v22 '),rn(6, 3, 1, 'v21 ');rnrn我现在的mysql语句:rnSELECT a.aid, b.bid,b.bfield,c.cvaluernFROM (a, b ) rnLEFT JOIN c rnON (a.aid = c.aid AND b.bid = c.bid) rnORDER BY a.aid ASC, b.bid ASC rnrn得到的结果是:rnaid bid bfield cvaluern1 1 "f1" "v11"rn1 2 "f2" "v12"rn1 3 "f3" "v13"rn1 4 "f4" NULLrn2 1 "f1" "[color=#FF0000]v31[/color]"rn2 2 "f2" "v22"rn2 3 "f3" NULLrn2 4 "f4" NULLrn3 1 "f1" "[color=#FF0000]v21[/color]"rn3 2 "f2" NULLrn3 3 "f3" NULLrn3 4 "f4" NULLrnrnrn然后希望得出来的数据结构是:rnaid bid bfield cvaluern1 1 "f1" "v11"rn1 2 "f2" "v12"rn1 3 "f3" "v13"rn1 4 "f4" NULLrn3 1 "f1" "[color=#FF0000]v21[/color]"rn3 2 "f2" NULLrn3 3 "f3" NULLrn3 4 "f4" NULLrn2 1 "f1" "[color=#FF0000]v31[/color]"rn2 2 "f2" "v22"rn2 3 "f3" NULLrn2 4 "f4" NULLrnrn注意红色部分。 主要是想根据不同aid的bfield的相同项目(比如f1)排序,然后保持相同的aid在一起并且cvalue的值能按序排列rn哪位仁兄帮帮忙!
MySQL 排序语句
如果需要对读取的数据进行排序,就可以使用 MySQL 的 ORDER BY 子句来设定你想按哪个字段哪种方式来进行排序,再返回搜索结果。 以下是 SQL SELECT 语句使用 ORDER BY 子句将查询数据排序后再返回数据: SELECT field1, field2,...fieldN FROM table_name1, table_name2... ORDER BY
mysql排序分组SQL问题
sql如下:rn[code=sql]rnselect id,name,category_id,date,rank from rnrn(select id,name,category_id,date,if(@category_id = b.category_id, @rank := @rank + 1, @rank := 1) as rank , rnrn@category_id:=b.category_id rnrnfrom (select id,name,category_id,date from test order by (date+0) desc) b,(select @rownum := 1, @category_id:= null, @rank := 1) a) rnresult where rank=1;rnrn[/code]rntest表测试数据如下:rnid name category_id datern1 aaa 1 2013-12-20 12:10:00rn2 bbb 1 2013-12-21 12:20:00rn3 ccc 1 2013-12-22 12:30:00rn4 ddd 1 2013-12-23 12:40:00rn5 eee 1 2013-12-24 12:50:00rn6 fff 2 2013-12-20 12:10:00rn7 ggg 2 2013-12-21 12:20:00rnrn要求是按category_id分组,求组内时间date最大的一条数据rn但是运行sql后得到的结果如下:rnid name category_id date rankrn1 aaa 1 2013-12-20 12:10:00 1rn6 fff 2 2013-12-20 12:10:00 1rnrn为什么把时间最小的给拿出来了呢,不是已经按date字段desc了吗,本人最近项目才用到mysql,所以不了解这个东西,求高手给看一下呗。rnrnrn
【SQL】MySQL模糊查询排序问题
背景一、 在一些模糊查询的过程中,有一些需求对于查询结果的排序问题,如查询keyWord的值为“万科”,常常需要希望对于模糊查询的结果排序规则最好为“万科”,“万科%”,“%万科”,"%万科%",一种解决办法是通过编程语言如java中去处理暂且不提,在此则提供一种SQL解决方案,具体sql可参考如下: <select id="findAllByParam" p...
关于SQL语句的排序问题
ORDER BY 语句用于对结果集进行排序,这里对ORDER BY语句进行简单的介绍: ORDER BY 语句 ORDER BY 语句用于根据指定的列对结果集进行排序。 ORDER BY 语句默认按照升序对记录进行排序。 如果您希望按照降序对记录进行排序,可以使用 DESC 关键字。 例如: 第一步:确定输出内容,你要的字段为name,数据结果为b,
急!!!!SQL语句的排序问题
12 4 001 010 002 03 011 rn用sql语句排成rn001 002 03 4 010 011 12rn怎么整??
求语句,SQL排序问题
给table A里的数据排序,排序方式为:当字段B = b1时,按照 字段C asc,字段D asc排序,当字段B= b2时,按照 字段C desc,字段D desc排序,SQL语句应该怎么写?求助~~~
请教sql 语句排序问题
select * from table where a='a' or a='b'rn关于一个排序的问题请教你一下,条件等于a或等于b的都列出来,同时包含a和b的排在最前面,大伙说说这怎么实现呢?
求救:SQL语句排序问题
我有一个表cookiedata,字段为:dataid(数据ID号), orderid(排序号)rnrn还有一个数据基本表(myfile) : 字段为title, Content, 还有很多字段rn我现在想实现的是:cookiedata是收藏了的文章,rn打开已经收藏的文章, 并按orderid字段排序。rn如果以打开cookiedata 排序,写sql:select (select title from myfile where id=cookiedata.dataid) as title order by orderid desc可以实现,rn但我想以打开myfile表,但以cookies表的orderid来排序(因为myfile还有很多字段,如果打开cookiedata表,是不是myfile每个字段的值都要去和cookiedata的dataid匹配?)rn应该怎么写?rnrnselect title from myfile where id in (select dataid from cookiedata) order by (后面不知道怎么写了)
SQL语句多重排序问题
现在有BLOG_ART(博客文章表 )表中有 ART_ID, BLOG_ID, SUBJECT, CONTENT, CREATE_DATErn 1 1 subject content 2009/10/11rn 2 2 subject2 content2 2009/12/12rnrnBLOG_ID为博客的ID,对应多个ART_IDrn现在想按博主的发贴数量排序, 如果有相同的发贴数量的博客, 则需要按CREATE_DATE排序rn
关于SQL排序语句问题
关于SQL排序语句问题rnrn查询条件是:rn1)如果某字段值相等时,则按某一列排序(如时间)rnrn2)如果某几个字段值相等时,则按某一列排序(如时间)
关于SQL语句排序的问题。
两个字段,一个是total,一个是checkrn其中total里有三种数值,16,10,1rn如何让total按10--16--1这样排呢,而让check是正常倒序排。rn如果是rnorder by toal desc,check desc无法做到让total按10--16--1这样排。
一条sql语句排序问题?
如何能对一个表中,三个时间字段中最新时间进行排序(添加时间,修改时间,删除时间)
求救:SQl语句排序问题
表Tablern名称N 代码T 顺序Srn纱 12 1rn棉 13 2rn绦纱 122d 1rn布纱 12b6 2rn氯绦纱 122dee 1rn氨绦纱 122dfa 2rn纯棉 13e9 1rnrn现在想用一条SQL语句按顺序排成这样:rnrn纱 12 1 rn绦纱 122d 1rn氯绦纱 122dee 1rn氨绦纱 122dfa 2rn布纱 12b6 2rn棉 13 2rn纯棉 13e9 1 rnrn请各位高手帮解决一下,不胜感激!!!!
求SQL语句 排序问题
有两个表,入库表,出库表rn每个表里都有个日期字段rn我想把这两个表合并,按照合并后的日期的倒序排列rn应该怎么写啊
一个SQL语句的排序问题
select 字段 from 表名 order by 字段rnrn我想把按照一个字段特定的值来排序,只要这个字段等于特定的值就会优先排在前面。rnrn难道真的要先用where 条件先选出来然后再用一条SQL语句将另外的选出,再把两个结果叠加起来,这么做显得有点麻烦,有没有其它的办法??
一个sql语句排序问题
SELECT title, info, strong, pi, price, vol, volnumrnFROM infornWHERE (vol <= 13) AND (vol + volnum > 13)rnorder by strong desc,pi,price,inputer,inputdatern多重排序中我要使price中等于0的排在前面,不等于零的排在后面,但是后面的并不按price的值大小排序,而只是判断等于不等于零,不等于零的还按照inputer,inputdate的顺序排列。这个可以直接用sql实现嘛?
简单sql语句(排序问题)
语句如下rnSELECT * FROM dk where sfz='320105800331141' order by dk_date desc;rnrndk_date 是日期rnrn但是检索结果是:部分纪录是降序,比如:9 //这里的数字是日期的简写,多是同月的rn 8rn 7rn 6rn 14 //这里又变成了14号开始了,14号应该在最顶部阿rn 13rn 12rnrn如何实现从最大的日期开始一直降到最小日期 rn 谢谢rn
排序问题,求sql语句
比如 rn一个字段如下:rnA1rnA11rnA2rnA2.1rnA2.11rnA2.2rnrn怎么实现查询后rnA1rnA2rnA2.1rnA2.2rnA2.11rnA11rnrn
sql分页的语句排序问题
我写了一个jsp的分页,pb.rowsPerPage是每页多少行,currentpage是当前是多少页。rnselect top " + pb.rowsPerPage + " t.* from (select * from Questions where id not in(select top " + (currentpage - 1) * pb.rowsPerPage + " id from Questions)) t order by t.id。rn现在这句话分出页来是id从小到大顺序排序,现在我想让他倒叙排列,但我只是在语句最后的t.id后加上一个desc,结果第2、3页的显示结果是和第一页是一样的,后面页正常,我也把pb.rowsPerPage和currentpage数据打出来了,数据都对,不知道这是为什么就是有错,请大家指教,谢谢!
求:SQL语句(排序问题)
表Sale有字段a, brnrna b a brn101 1 1 1rn104 1 2 1rn105 1 3 1rn102 2 -> 1 2rn107 2 2 2rn108 2 3 2rn109 2 4 2rnrn想用最简单的方法实现rnb相同时,a的顺序rn
相关热词 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法