sql int 比较_SQL进阶--错题集1
在刷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相关推荐
- C语言练习题的错题集
@C语言练习题错题集 判断题错题集 1.在对数组全部元素赋初值时,不可以省略行数,但能省略列数. 对于数组来说,列数是不可以省略的,相反的可以省略行数. 2.数组名就是一个指针常量,指向数组的首元素( ...
- C语言易错题集 第四部
C语言易错题集 第四部 一.位操作相关 二.switch()相关 三.输出相关 四.实数相关 五.指针&a相关 六.指针访问数组元素相关 七.转义字符相关 八.类型提升问题 九.是不是正确的浮 ...
- C语言易错题集 第二部
C语言易错题集后续 一.共用体相关(union) 二.do,while相关 三.char溢出相关 四.printf()相关 五.++相关 六. for语句相关 七.calloc()相关 八.defin ...
- C语言错题集(指针2020/12/8)
C语言错题集(指针2020/12/8) 1.关于C语言指针的运算:指针只有加减操作,没有乘除操作.指针可以加常数.减常数:相同类型的指针可以相加.相减.(F) 指针之间可以相减,但不可以相加:两个同一 ...
- 一本好的“错题集”如何做?看这里
<错题本>制作 每个人肯定都有听说,错题本对高考到底多么多么有用,对我们的复习多么多么有用.但是问题也来了,做错题本好像要用我们很多的时间,可能做完了还空看,那怎么办呢?今天本车从做错题本 ...
- golang的个人学习笔记以及错题集
主要参考对象 https://docs.microsoft.com/zh-cn/learn/paths/go-first-steps/ https://tour.go-zh.org/ 安装 https ...
- Python错题集(贰)
1.编写一个函数,接收一个字符串,分别统计大写字母,小写字母,数字,其他字符的个数, 并以元组的形式返回结果 def calculation(num):capital=little=digit=oth ...
- 牛客网错题集(2021-08-31)
牛客错题集2 暑假回来的一次刷题,结果不是很理想. 1.在 main() 方法中给出的整型数组,如果将其写到一个文件中,需要( ). 2.给定代码: 3.第三行将输出什么? 4.关于下面的程序,说法正 ...
- c语言解三元一次方程组_七年级下学期《8.3 一元一次不等式组》2020年高频易错题集...
一.选择题(共10小题) 二.填空题(共5小题) 三.解答题(共5小题) 七年级下学期<8.5 一元一次不等式组>2020年高频易错题集 参考答案与试题解析 一.选择题(共10小题) [点 ...
最新文章
- Xtrabackup bug记录
- 9.9学python靠谱吗-走进小学教材,Python何德何能?9图对比道出真相
- 亿级Web系统搭建――单机到分布式集群 转载
- 制作一个让客户满意的软件
- java setsolinger_java socket 的参数选项解读(转)
- LeetCode 272. 最接近的二叉搜索树值 II(栈+优先队列)
- 跳绳减肥每天多少下有效?正确跳绳姿势是什么?
- celebs名人写真图片数据采集,先下载100个G再说
- c语言编程我爱你红色代码,C语言告白代码,一闪一闪亮晶晶~
- 串口调试助手和网络调试助手
- web高拍仪图片上传
- 【面试:基础篇06:FailFast与FailSafe机制】
- 人体反应测试仪 c语言,FD.12-FD-HRT-A
- 正弦波振荡的常见电路
- palantir_Palantir开源的两个库– Cinch和Sysmon
- iOS App上架AppStore 会遇到的坑
- 程序员是世界上最聪明、最具幽默感的一群人
- [java] java语言基础
- SAP JCo 功能
- 关于计算机的一些常识
热门文章
- [iOS]自定义view使用xib
- P3052 [USACO12MAR]摩天大楼里的奶牛Cows in a Skyscraper [模拟退火]
- NODE_ENV不是内部或外部命令,也不是可运行的程序
- ThinkPHP实现登陆功能
- hybris recode
- 【Android游戏开发二十】物理游戏之重力系统开发,让你的游戏变得有质有量!...
- Windows下配置OpenSSL(傻瓜式教程,一看就会)
- java调用caffe_Caffe中master与windows分支差异对比及通过命令提示符编译Caffe源码操作步骤...
- 差分隐私 机器学习_微软发布多个建置可信AI的问责机器学习工具
- 如何重新安装win2008服务器系统分区,怎么解决安装server2008后磁盘分区消失的方法步骤...