在刷SQL题,在此记录错题,想要SQL能力进阶的朋友可以一起学习交流。

来源:力扣(LeetCode)

题库 - 力扣 (LeetCode)​leetcode-cn.com

1.给定一个 salary 表,如下所示,有 m = 男性 和 f = 女性 的值。交换所有的 f 和 m 值(例如,将所有 f 值更改为 m,反之亦然)。要求只使用一个更新(Update)语句,并且没有中间的临时表。

答:

update salary
set sex = case sexwhen 'm' then 'f'else 'm'end;

或者

update salary set sex=if(sex='m','f','m')

2. 表1: Person

| 列名 | 类型 | : | PersonId | int |, | FirstName | varchar |, | LastName | varchar |

PersonId 是上表主键

表2: Address

| 列名 | 类型 | : | AddressId | int |, | PersonId | int |, | City | varchar |, | State | varchar |

AddressId 是上表主键

编写一个 SQL 查询,满足条件:无论 person 是否有地址信息,都需要基于上述两表提供 person 的以下信息:FirstName, LastName, City, State。

答:

select FirstName, LastName, City, State from Person X, Address Y whereX.PersonId = Y.PersonId;

这样写是错误的,因为如果某个人没有地址信息,那么在address中不会显示他的姓名信息。

所以这道题应该使用外连接。

select FirstName, LastName, City, State
from Person left join Address
on Person.PersonId = Address.PersonId
;

3.编写一个 SQL 查询,来删除 Person 表中所有重复的电子邮箱,重复的邮箱里只保留 Id 最小 的那个。

答:

delete X from Person X, Person Y where X.Email = Y.Email and X.Id > Y.Id;

删除的格式还没有掌握牢固。

4.给定一个Weather表,编写一个 SQL 查询,来查找与之前(昨天的)日期相比温度更高的所有日期的 Id。

答:

MySQL 使用DATEDIFF来比较两个日期类型的值。DATEDIFF(昨天,今天)=1,DATEDIFF(今天,昨天)=-1。

select Id from Weather X where Temperature > (select Temperature from Weather Y where Datediff(X.RecordDate,Y.RecordDate)=1
)
;

5.有一个courses 表 ,有: student (学生)class (课程)。请列出所有超过或等于5名学生的课。

答:

select class from courses group by class having count(student) >= 5 ;

这样写是错的,因为表格中可能存在两条记录都是Joe选了Math,要去除重复。(虽然个人觉得有点扯,这样的设计主键不就不unique了嘛)稍微修改一下,就可以避免这个重复的错误。

select class from courses group by class having count(distinct student) >= 5 ;

6.编写一个 SQL 查询,获取Employee 表中第二高的薪水(Salary)。如果不存在第二高的薪水,那么查询应返回null

答:

解决 “NULL” 问题的一种方法是使用 “IFNULL” 函数。IFNULL(expr1,expr2),如果expr1为空,就返回expr2;如果expr1非空,就返回expr1。

学会使用 limit 和 offset,limit y offset x 分句表示查询结果跳过 x 条数据,读取前 y 条数据。

select ifnull((select distinct Salary from Employee order by Salary DESC limit 1 offset 1),null)as SecondHighestSalary;

7.编写一个 SQL 查询,获取Employee表中第 n 高的薪水(Salary)。如果不存在第 n 高的薪水,那么查询应返回 null

答:

CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGINset  n = N-1;RETURN (# Write your MySQL query statement below.select ifnull((select distinct Salary from employee order by Salary desc limit 1 offset n),null) as getNthHighestSalary);
END

相比上一题,重复练习limit offset之外,需要用set添加变量n。

sql int 比较_SQL进阶--错题集1相关推荐

  1. C语言练习题的错题集

    @C语言练习题错题集 判断题错题集 1.在对数组全部元素赋初值时,不可以省略行数,但能省略列数. 对于数组来说,列数是不可以省略的,相反的可以省略行数. 2.数组名就是一个指针常量,指向数组的首元素( ...

  2. C语言易错题集 第四部

    C语言易错题集 第四部 一.位操作相关 二.switch()相关 三.输出相关 四.实数相关 五.指针&a相关 六.指针访问数组元素相关 七.转义字符相关 八.类型提升问题 九.是不是正确的浮 ...

  3. C语言易错题集 第二部

    C语言易错题集后续 一.共用体相关(union) 二.do,while相关 三.char溢出相关 四.printf()相关 五.++相关 六. for语句相关 七.calloc()相关 八.defin ...

  4. C语言错题集(指针2020/12/8)

    C语言错题集(指针2020/12/8) 1.关于C语言指针的运算:指针只有加减操作,没有乘除操作.指针可以加常数.减常数:相同类型的指针可以相加.相减.(F) 指针之间可以相减,但不可以相加:两个同一 ...

  5. 一本好的“错题集”如何做?看这里

    <错题本>制作 每个人肯定都有听说,错题本对高考到底多么多么有用,对我们的复习多么多么有用.但是问题也来了,做错题本好像要用我们很多的时间,可能做完了还空看,那怎么办呢?今天本车从做错题本 ...

  6. golang的个人学习笔记以及错题集

    主要参考对象 https://docs.microsoft.com/zh-cn/learn/paths/go-first-steps/ https://tour.go-zh.org/ 安装 https ...

  7. Python错题集(贰)

    1.编写一个函数,接收一个字符串,分别统计大写字母,小写字母,数字,其他字符的个数, 并以元组的形式返回结果 def calculation(num):capital=little=digit=oth ...

  8. 牛客网错题集(2021-08-31)

    牛客错题集2 暑假回来的一次刷题,结果不是很理想. 1.在 main() 方法中给出的整型数组,如果将其写到一个文件中,需要( ). 2.给定代码: 3.第三行将输出什么? 4.关于下面的程序,说法正 ...

  9. c语言解三元一次方程组_七年级下学期《8.3 一元一次不等式组》2020年高频易错题集...

    一.选择题(共10小题) 二.填空题(共5小题) 三.解答题(共5小题) 七年级下学期<8.5 一元一次不等式组>2020年高频易错题集 参考答案与试题解析 一.选择题(共10小题) [点 ...

最新文章

  1. Xtrabackup bug记录
  2. 9.9学python靠谱吗-走进小学教材,Python何德何能?9图对比道出真相
  3. 亿级Web系统搭建――单机到分布式集群 转载
  4. 制作一个让客户满意的软件
  5. java setsolinger_java socket 的参数选项解读(转)
  6. LeetCode 272. 最接近的二叉搜索树值 II(栈+优先队列)
  7. 跳绳减肥每天多少下有效?正确跳绳姿势是什么?
  8. celebs名人写真图片数据采集,先下载100个G再说
  9. c语言编程我爱你红色代码,C语言告白代码,一闪一闪亮晶晶~
  10. 串口调试助手和网络调试助手
  11. web高拍仪图片上传
  12. 【面试:基础篇06:FailFast与FailSafe机制】
  13. 人体反应测试仪 c语言,FD.12-FD-HRT-A
  14. 正弦波振荡的常见电路
  15. palantir_Palantir开源的两个库– Cinch和Sysmon
  16. iOS App上架AppStore 会遇到的坑
  17. 程序员是世界上最聪明、最具幽默感的一群人
  18. [java] java语言基础
  19. SAP JCo 功能
  20. 关于计算机的一些常识

热门文章

  1. [iOS]自定义view使用xib
  2. P3052 [USACO12MAR]摩天大楼里的奶牛Cows in a Skyscraper [模拟退火]
  3. NODE_ENV不是内部或外部命令,也不是可运行的程序
  4. ThinkPHP实现登陆功能
  5. hybris recode
  6. 【Android游戏开发二十】物理游戏之重力系统开发,让你的游戏变得有质有量!...
  7. Windows下配置OpenSSL(傻瓜式教程,一看就会)
  8. java调用caffe_Caffe中master与windows分支差异对比及通过命令提示符编译Caffe源码操作步骤...
  9. 差分隐私 机器学习_微软发布多个建置可信AI的问责机器学习工具
  10. 如何重新安装win2008服务器系统分区,怎么解决安装server2008后磁盘分区消失的方法步骤...