2019独角兽企业重金招聘Python工程师标准>>>

1.一些题目:

选择在每一组B值相同的数据中对应的a最大的记录的所有信息,(用于论坛每月排行榜)

Selecta,b,c from tableta  wherea=(select max(a) from tabletb where tableb.b= tableta.b )

随机抽取出10条数据

Select top 10 * from tablename order bynewid()

删除重复的记录

Delete from tablename where id notin(select max(id) from tablename group by col1,col2…..)

选择从10到15的记录

Select top 5 * from (select top 15* fromtable order by id asc) table_别名 order by id desc

oracle order by 处理NULL 值

适用情况: 
oracle 对查询结果进行排序时,被排序的栏位存在null值,且要指定NULL值排在最前面或者最后面 
关键字:Nulls First;Nulls Last 
默认情况:null 默认为最大值(即:asc 升序<小-->大>,null值排在最后;desc 降序<大-->小>,null值排在最前面) 
指定: 
1. Oracle Order by支持的语法 
2. 指定Nulls first 则表示null值的记录将排在最前(不管是asc 还是desc) 
3. 指定Nulls last 则表示null值的记录将排在最后(不管是asc 还是desc) 
语法举例:(Table:Tab_A 有部分空值的栏位Col_A) 
select * from Tab_A order by Tab_A. Col_A (asc/desc) nulls first ------>null 值排在最前面 
select * from Tab_A order by Tab_A. Col_A (asc/desc) nulls last ------>null 值排在最后面 
其他方法: 
在order by 的时候,用Nvl、NVL2 、Decode、case .....when....end;等函数对栏位的null值进行处理 
例如:select * from Tab_A order by NVL(Tab_A. Col_A,'abc' ) (asc/desc) ;

SQL JOIN类型的查询语句:

INNER JOIN//JOIN:如果表中有至少一个匹配,则返回行.(INNER JOIN 与 JOIN 是相同的.)
LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
FULL JOIN: 只要其中一个表中存在匹配,就返回行.在某些数据库中, FULL JOIN 称为 FULL OUTER JOIN。
1.INNER JOIN(join)
select u.realname,r.num,r.roles from userinfo as u INNER JOIN roles as r ON u.id=r.uid  
查询出符合条件的信息.
2.left join
select u.realname,r.num,r.roles from userinfo as u LEFT JOIN roles as r ON u.id=r.uid 
查询出符合条件的信息后,左表不匹配的也会从左表返回所有的行,并且显示右边的数据为空(但是已查出的某行数据<适合的可能是多条>,不会在最后不匹配队列中返回.)
3.right join
和left join反过来,不解释了.
4.full jion(FULL OUTER JOIN)
MySql貌似不支持,其实就是left jion,right jion,两个查询的 UNION 合集.
5.默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。
补充2个SQLSERVER下的高级查询:

B: except 运算符[1有但2没有的数据]

EXCEPT运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随EXCEPT 一起使用时(EXCEPTALL),不消除重复行。

C:intersect 运算符[1,2都有的数据]

INTERSECT运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随INTERSECT 一起使用时(INTERSECTALL),不消除重复行。 注:使用运算词的几个查询结果行必须是一致的。

3.between的用法

between限制查询数据范围时包括了边界值,not between不包括
select* from table1 where time between time1 and time2
selecta,b,c, from table1 where a not between 数值1and 数值2

4.使用in效率和exists效率

in适用于小数据量,如果大数据量使用exists.更详细的测试如下,不过我觉得前面的话就很适用了.
http://www.itpub.net/thread-1070206-1-1.html

转载于:https://my.oschina.net/zhaoqian/blog/73276

SQL with NUll处理,Join系列,between,in对比exists以及少量题目相关推荐

  1. 【SQL开发实战技巧】系列(六):从执行计划看NOT IN、NOT EXISTS 和 LEFT JOIN效率,记住内外关联条件不要乱放

    系列文章目录 [SQL开发实战技巧]系列(一):关于SQL不得不说的那些事 [SQL开发实战技巧]系列(二):简单单表查询 [SQL开发实战技巧]系列(三):SQL排序的那些事 [SQL开发实战技巧] ...

  2. 【SQL开发实战技巧】系列(五):从执行计划看IN、EXISTS 和 INNER JOIN效率,我们要分场景不要死记网上结论

    系列文章目录 [SQL开发实战技巧]系列(一):关于SQL不得不说的那些事 [SQL开发实战技巧]系列(二):简单单表查询 [SQL开发实战技巧]系列(三):SQL排序的那些事 [SQL开发实战技巧] ...

  3. 【SQL开发实战技巧】系列(十):从拆分字符串、替换字符串以及统计字符串出现次数说起

    系列文章目录 [SQL开发实战技巧]系列(一):关于SQL不得不说的那些事 [SQL开发实战技巧]系列(二):简单单表查询 [SQL开发实战技巧]系列(三):SQL排序的那些事 [SQL开发实战技巧] ...

  4. 【SQL开发实战技巧】系列(三):SQL排序的那些事

    系列文章目录 [SQL开发实战技巧]系列(一):关于SQL不得不说的那些事 [SQL开发实战技巧]系列(二):简单单表查询 [SQL开发实战技巧]系列(三):SQL排序的那些事 [SQL开发实战技巧] ...

  5. 【SQL开发实战技巧】系列(七):从有重复数据前提下如何比较出两个表中的差异数据及对应条数聊起

    系列文章目录 [SQL开发实战技巧]系列(一):关于SQL不得不说的那些事 [SQL开发实战技巧]系列(二):简单单表查询 [SQL开发实战技巧]系列(三):SQL排序的那些事 [SQL开发实战技巧] ...

  6. 【SQL开发实战技巧】系列(二):简单单表查询

    系列文章目录 [SQL开发实战技巧]系列(一):关于SQL不得不说的那些事 [SQL开发实战技巧]系列(二):简单单表查询 [SQL开发实战技巧]系列(三):SQL排序的那些事 [SQL开发实战技巧] ...

  7. 【SQL开发实战技巧】系列(四):从执行计划讨论UNION ALL与空字符串UNION与OR的使用注意事项

    系列文章目录 [SQL开发实战技巧]系列(一):关于SQL不得不说的那些事 [SQL开发实战技巧]系列(二):简单单表查询 [SQL开发实战技巧]系列(三):SQL排序的那些事 [SQL开发实战技巧] ...

  8. 【SQL开发实战技巧】系列(八):聊聊如何插入数据时比约束更灵活的限制数据插入以及怎么一个insert语句同时插入多张表

    系列文章目录 [SQL开发实战技巧]系列(一):关于SQL不得不说的那些事 [SQL开发实战技巧]系列(二):简单单表查询 [SQL开发实战技巧]系列(三):SQL排序的那些事 [SQL开发实战技巧] ...

  9. 【SQL开发实战技巧】系列(九):一个update误把其他列数据更新成空了?Merge改写update!给你五种删除重复数据的写法!

    系列文章目录 [SQL开发实战技巧]系列(一):关于SQL不得不说的那些事 [SQL开发实战技巧]系列(二):简单单表查询 [SQL开发实战技巧]系列(三):SQL排序的那些事 [SQL开发实战技巧] ...

最新文章

  1. 正儿八经的详细讲java内部类
  2. iOS13 已越狱 iOS12.4 已越狱
  3. 三星android6.0推送,三星推送Android6.0 满屏小清新的风味!
  4. SpringCloud学习笔记003---服务提供者和服务消费者
  5. 数据丢失与重复_面试官:如何保证消息的可靠性传输?如何处理消息丢失的问题?...
  6. 【知识管理】知识管理系统功能构件简介
  7. “母子”角色互换背后的7-Eleven商业哲学
  8. js01--js基础入门
  9. 虚拟盘客户机文件盒服务器不一样,VMware ESX三种虚拟磁盘类型分析
  10. Vue暴露的属性和方法
  11. 浦东人大常委会副主任刘宇青一行莅临零数科技指导工作
  12. SpringBoot——入门(HelloWorld和探究HelloWorld)
  13. 基于改进的 CASA 模型反演30m分辨率NPP
  14. 记录--uniapp开发安卓APP视频通话模块初实践
  15. 圣诞节快要来了,可我就是_我圣诞节想要的一切:前奏便携式无线充电器
  16. 简单python爬取微博并写入excel
  17. centos7安装bazel,亲测可行
  18. 深度解析数据清理和特征工程!5本面向数据科学家的顶级书籍推荐 ⛵
  19. [BUUCTF][GYCTF2020]Ezsqli
  20. javascript加入收藏夹、设置首页

热门文章

  1. Java类加载器详解
  2. Spring装配Bean---使用xml配置
  3. 杨元庆:兔子要变成狼靠的是体制的激励
  4. java Spring 生命周期
  5. Canvas 的基本原理
  6. 怎样用VB编写.DLL动态链接库文件
  7. Cassandra数据模型设计最佳实践
  8. 软件项目中的需求分析具体方法探讨之一
  9. Python基础03-运算符
  10. 计算机应用基础电子演示文稿系统行考作业,最新电大计算机应用基础形考PowerPoint答案...