SQL面试题及详细答案150道(116-135) --- 高级查询与函数篇
《前后端面试题
》专栏集合了前后端各个知识模块的面试题,包括html,javascript,css,vue,react,java,Openlayers,leaflet,cesium,mapboxGL,threejs,nodejs,mangoDB,MySQL,Linux… 。
文章目录
- 一、本文面试题目录
-
-
- 116. 如何使用CASE语句实现“将salary分为'低(<5000)、中(5000-10000)、高(>10000)'”?
- 117. 如何使用IF函数查询“员工是否成年(age>=18)”?(MySQL)
- 118. 如何计算两个日期之间的天数?(例如:DATEDIFF函数)
- 119. 如何提取日期中的年份、月份、日?(例如:YEAR()、MONTH())
- 120. 如何拼接两个字段的值?(例如:CONCAT函数)
- 121. 如何将字符串转换为大写/小写?(UPPER()、LOWER())
- 122. 什么是窗口函数?写出一个使用ROW_NUMBER()的示例。
- 123. ROW_NUMBER()、RANK()、DENSE_RANK()的区别是什么?举例说明。
- 124. 如何使用窗口函数查询“每个部门的工资排名”?
- 125. 如何计算“每个用户的累计消费金额”?(SUM() OVER())
- 126. 如何查询“连续3天登录的用户”?(使用窗口函数LAG/LEAD)
- 127. 如何实现“行转列”?(例如:将学生成绩按科目横向展示)
- 128. 如何实现“列转行”?(例如:将横向的科目成绩转为纵向)
- 129. 如何查询“每个月的订单金额环比增长率”?
- 130. 如何查询“用户的首单和复购率”?
- 131. 如何使用GROUP_CONCAT将同一组的多个值拼接成字符串?(MySQL)
- 132. 如何查询“近7天每天的活跃用户数”?(包含无数据的日期)
- 133. 如何查询“商品的库存周转率”?(假设已知入库和出库记录)
- 134. 如何查询“每个部门的工资中位数”?
- 135. 如何使用正则表达式查询“手机号格式正确(11位数字)”的用户?
-
- 二、150道面试题目录列表
一、本文面试题目录
116. 如何使用CASE语句实现“将salary分为’低(<5000)、中(5000-10000)、高(>10000)'”?
- 原理说明:
CASE
语句用于实现条件判断,类似于编程语言中的if-else
逻辑。可根据salary
的不同范围返回对应的分类标签。 - 示例代码: