和ASCII码没多大关系,数字就按大小排序,日期按顺序,字符的话也不是按ASCII码排的是按字符的顺序不过也基本遵守ASCII码。这个其实很简单你用mysql做个测试就可以了,把键盘上的字符都打一遍,字段属性设置为varchar2就OK了。
mysql针对这些基本没有什么太过于复杂的分析,如果你要用到很细的话oracle可以。
在oracle9i中新增了按照拼音、部首、笔画排序功能。设置NLS_SORT值
SCHINESE_RADICAL_M
按照部首(第一顺序)、笔划(第二顺序)排序
SCHINESE_STROKE_M 按照笔划(第一顺序)、部首(第二顺序)排序
SCHINESE_PINYIN_M 按照拼音排序,系统的默认排序方式为拼音排序
举例如下:
表名为 dept
,其中name字段是中文,下面分别实现按照单位名称的笔划、部首和拼音排序。
1: //按照笔划排序
2: select from dept
order by nlssort(name,'NLS_SORT=SCHINESE_STROKE_M');
3: //按照部首排序
4:
select from dept order by nlssort(name,'NLS_SORT=SCHINESE_RADICAL_M');
5:
//按照拼音排序,此为系统的默认排序方式
6: select from dept order by
nlssort(name,'NLS_SORT=SCHINESE_PINYIN_M');
加一个排序的整型字段,新闻用该字段从小到大排序,程序处理的时候:要往上排(取出按大到小排序的新闻的TOP前两行的新闻ID,更换他们的排序ID,这个 *** 作不用我写吧,取出值来按它们的ID换掉排序ID就行了),往上摆就是跟它上面的新闻调换排序ID,实现起来很简单:例如:
新闻表AAA
新闻ID,排序ID
1,1
2,2
3,3
4,4
例如我要将新闻3往上排
select top 2 新闻ID,排序ID from AAA where 新闻ID<=3 order by 排序ID desc
然后datatable取值(这里可以取到新闻2和3)
update AAA set 排序ID=(新闻ID3对应的排序ID) where 新闻ID=2
update AAA set 排序ID=(新闻ID2对应的排序ID) where 新闻ID=3
最后的结果是
新闻ID,排序ID
1,1
3,2
2,3
4,4
第二节为大家介绍了数据的查询,这一小节为大家深入讲解查询过程中的数据分组和排序,分组关键字为:group by,排序关键字为:order by,过滤分组的关键字为:having;
group by:对查询的数据按照某一类型进行分组, group by 一般用在order by子句之前,where子句之后
order by:对查询的数据进行某一类进行排序 或 对分组后的数据进行排序
having:对分组后的数据进行条件过滤
继续以上一章创建的客户表为例,表名: customer ,表有列: cus_id,cus_no,cus_name,cus_age,cus_adds。
eg:查询客户的基本信息,以id进行分组: select cus_id,count() as num from customer group by cus_id; num表示对应的cus_id有多少客户数据, 查询结果如下
如果分组的列中有null值,那么null将作为一个分组返回,如果有多个行都为null值,它们将会被分为一组返回。 group by 必须用在where子句之后,order by子句之前。
除group by可以进行分组过滤数据外,having也可以进行过滤分组;having过滤和where类似,唯一区别在于where是过滤行,而having是过滤分组,可看以下列子:
eg: 查询以id分组后数据总量两条以上的数据: select cus_id,count() as num from customer group by cus_id having count() >= '2'; 满足条件的就只有一条数据
order by主要用于数据排序的情况,当查询数据量较大时,有序的数据会让人更好地直观观察数据,order by 关键字用于对结果集按照一个列或者多个列进行排序。此外order by 关键字默认按照升序对记录进行排序。如果需要按照降序对记录进行排序,您可以使用 DESC 关键字。使用方法如下
eg:查询客户的基本信息,以年龄进行排序,默认升序:select from customer order by cus_age;
eg:查询客户的基本信息,以年龄进行排序,降序方式排序:select from customer order by cus_age DESC;
升序使用ASC,降序使用DESC,系统默认为升序。注意两者之间的差异
当对多个列进行排序时,order by使用方法如下:
order by A,B --过滤数据都是默认按升序排列
order by A desc,B --过滤数据时 A 降序,B 升序排列
order by A ,B desc --过滤数据时 A 升序,B 降序排列
desc 或者 asc 只对它紧跟着的第一个列名有效,其他不受影响,仍然是默认的升序。
本小节介绍排序分组就到这里了,通过多分组排序的介绍,知道了group by,order by,having三者之间的差异和区别,大家可以在自己电脑多编写几个脚本,深入了解三个关键字的使用。
调用格式: 〈无返回值〉 对象.到首记录 () - 系统核心支持库->数据源
英文名称:GoTop
将数据源中当前记录指针移动到第一条记录上。本命令为初级对象成员命令。
调用格式: 〈逻辑型〉 对象.插入行 (整数型 行号,〔整数型 行数〕) - 系统核心支持库->数据源
英文名称:InsertRow
在数据源中指定位置处插入新数据行。注意某些数据提供者可能不支持在中间插入行。成功返回真,失败返回假。本命令为初级对象成员命令。
参数<1>的名称为“行号”,类型为“整数型(int)”。行号从1开始。
参数<2>的名称为“行数”,类型为“整数型(int)”,可以被省略。如果本参数被省略,默认值为1。
update 表名 set column_no=datepart(day,column_time)
建议你把column_no 按如20090101来更新较方便,这样能与column_time能对应上。
update 表名 set column_no=(datepart(year,column_time)100+datepart(month,column_time))100+datepart(day,column_time)
关于对于excel数据库排序是按照什么进行的这一问题的回答是excel是默认按数据的首字ASCII大小进行排序。
MicrosoftExcel简称Excel是微软公司的办公软件Microsoftoffice的组件之一。
是由Microsoft为Windows和AppleMacintosh *** 作系统的电脑而编写和运行的一款试算表软件。
Excel是微软办公套装软件的一个重要的组成部分,它可以进行各种数据的处理、统计分析和辅助决策 *** 作,广泛地应用于管理、统计财经、金融等众多领域。
使用MicrosoftExcel执行计算,分析信息并管理电子表格或网页中的列表。
插入的时候不存在新增的行在末尾这一说法,不过mysql的myisam引擎貌似可以控制在行尾插入,oracle不带这种功能。。
数据库是以文件形式存储在文件系统中,不存在像堆积木一样,一行行堆上去。。 只能说查询出来的内容可以排序。。
将字段依次写在order by 后面即可 , 中间用逗号隔开。
view plaincopy to clipboardprintselect from 表 order by time , name
select from 表 order by time asc , name asc
select from 表 order by time desc , name desc
select from 表 order by time asc , name desc
select from 表 order by time desc , name asc
(注: asc 表示升序 , desc表示降序 , 未明确写明排序方式时默认是升序)
与之类似的语法是 group by , 按多个字段分组时 , 也是依次将多个字段写在group by 的后面 , 并用逗号隔开 , 范例如下:
view plaincopy to clipboardprintselect time , name , sum() from 表 group by time , name
以上就是关于数据库排序问题全部的内容,包括:数据库排序问题、数据库信息按照自定义顺序排序,给个思路、三、MySQL数据库之分组排序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)