1、openGauss企业。
2、达梦。
3、GaussDB。
4、PolarDB。
5、人大金仓。
6、GBase。
7、TDSQL。
8、SequoiaDB。
9、OushuDB。
10、AnalyticDB。
详细介绍:
1、南大通用:
南大通用提供具有国际先进技术水平的数据库产品。南大通用已经形成了在大规模、高性能、分布式、高安全的数据存储、管理和应用方面的技术储备,同时对于数据整合、应用系统集成、PKI安全等方面具有丰富的应用开发经验。
2、武汉达梦:
武汉达梦数据库有限公司成立于2000年,为国有控股的基础软件企业,专业从事数据库管理系统研发、销售和服务。其前身是华中科技大学数据库与多媒体研究所,是国内最早从事数据库管理系统研发的科研机构。达梦数据库为中国数据库标准委员会组长单位,得到了国家各级政府的强力支持。
3、人大金仓:
人大金仓数据库管理系统KingbaseES是北京人大金仓信息技术股份有限公司自主研制开发的具有自主知识产权的通用关系型数据库管理系统。
金仓数据库主要面向事务处理类应用,兼顾各类数据分析类应用,可用做管理信息系统、业务及生产系统、决策支持系统、多维数据分析、全文检索、地理信息系统、图片搜索等的承载数据库。
4、神舟通用:
神通数据库是一款计算机数据库。神通数据库标准版提供了大型关系型数据库通用的功能,丰富的数据类型、多种索引类型、存储过程、触发器、内置函数、视图、Package、行级锁、完整性约束、多种隔离级别、在线备份、支持事务处理等通用特性,系统支持SQL通用数据库查询语言。
不知道你的是什么数据库,我用oracle的写法了。
两种办法:
分别求最大和最小,然后union all
select * from(select * from table order by 成绩) where rownum<=5
union all
select * from(select * from table order by 成绩 desc) where rownum<=5
利用排序,找到每个人的位置,然后输出。排序的方法很多,可以用rownum排序,也可以用row_number()over()排序
我用row_number()over()写一个
select a.姓名,a.成绩 from
(select row_number()over(order by 成绩) num,姓名,成绩 from table) a where a.num<=5 or
a.num>=(select count(*)-5 from table)
我没实验,不过就算有问题也应该不大。
sqlserver的版本是啥?是2005以上么?如果是
那么利用那个row_number的应该也可以,不过为了让分数一样的人都出来,那么最好改为
这种情况是假设前五出现分数相同的话,假如前五名有六个人的情况,不过我没有输出名次,另外我上面的那种写法也可以试试,sqlserver好像也可以。
不过如果你要是sql2005以前的版本那时sqlserver还没有这几个开窗函数,那就稍微有点麻烦了。
select 姓名,成绩 from
select rank()over(order by 成绩) num,rank()over(order by 成绩 desc) num_desc,姓名,成绩 from table) a where a.num<=5 or a.num_desc<=5 order by 成绩 desc
方法一:select top 10 * from 表名 order by 列名 方法二: select top 10 percent * from 表名 order by 列名 方法一:是按照指定列名排序后,取前十个方法二:按照指定列名排序后,取总数的10% 希望能够满足您的需求,谢谢采纳欢迎分享,转载请注明来源:内存溢出
评论列表(0条)