练习sql语句,所有题目来自于力扣(https://leetcode.cn/problemset/database/)的免费数据库练习题。
620.有趣的电影
表:cinema
列名 | 类型 |
---|---|
id | int |
movie | varchar |
description | varchar |
rating | float |
id 是该表的主键(具有唯一值的列)。每行包含有关电影名称、类型和评级的信息。评级为 [0,10] 范围内的小数点后 2 位浮点数。
编写解决方案,找出所有影片描述为 非 boring (不无聊) 的并且 id 为奇数 的影片。返回结果按 rating 降序排列。
我的思路:首先梳理表内容,题目给了一张cinema表,记录了电影id,名称,类型以及评级。其次分析需求,需要找到影片描述为非boring,也就是 description <> “boring”,并且id为奇数,也就是id % 2 <> 0,然后通过rating 降序排序。
select id,movie,description,rating
from cinema
where description <> "boring"
and id % 2 <> 0
order by rating desc
这里总结一下几种判断奇偶数的方法:
整除,也就是上面写的这一种,奇数是不能被2整除的:
id % 2 <> 0
位运算,因为在十进制中,奇数最后一位是1,偶数最后一位是0,所以判断位数最后一位是否为1:
id & 1 = 1
mod函数(用于计算两个数相除的余数):
mod(id,2) = 1
能运行就行。