题解 | #修复串列了的记录#

修复串列了的记录

https://www.nowcoder.com/practice/a5475ed3b5ab4de58e2ea426b4b2db76

知识点

  • SUBSTRING_INDEX(str, delimiter, count) 提取字符串
  • str: 要进行操作的字符串。
  • delimiter: 分隔符,用于将字符串分割成子字符串。
  • 如果 count 是正数,函数将返回前 count - 1 个分隔符之间的子字符串,以及最后一个分隔符之前的部分。
  • 如果 count 是负数,函数将返回从右侧开始的第 count 个分隔符之后的子字符串,以及它后面的部分。

示例:

SUBSTRING_INDEX('www.example.com', '.', 2) 将返回字符串 'www.example',因为它获取了第 2 个点号之前的部分。
SUBSTRING_INDEX('www.example.com', '.', -2) 将返回字符串 'example.com',因为它获取了倒数第 2 个点号之后的部分。
  • CAST(expression AS data_type) 进行类型转换
  • expression: 要转换的表达式或列值。
  • data_type: 要将表达式转换成的目标数据类型。

示例:

SELECT CAST('42' AS INT); -- 将字符串 '42' 转换为整数,结果为 42
SELECT CAST('3.14' AS DECIMAL(4, 2)); -- 将字符串 '3.14' 转换为带有两位小数的十进制数,结果为 3.14
SELECT CAST('2023-08-17' AS DATE); -- 将字符串 '2023-08-17' 转换为日期类型
SELECT CAST(15.75 AS CHAR); -- 将浮点数 15.75 转换为字符串类型,结果为 '15.75'

题解

  1. 原来的tag是 算法,medium,80
  2. 结构为 %,%
  3. 第一个 , 之前的分割为 tag
  4. `difficulty` 夹在中间, 先从前往后取出 算法,medium,再从后往前取出 `medium`
  5. 从后往前 取出deration,再转换为数值类型
SELECT
    exam_id,
    substring_index (tag, ',', 1) AS tag,  # 算法
    substring_index (substring_index (tag, ',', 2), ',', -1) AS difficulty, # medium
    CAST(substring_index (tag, ',', -1) AS DECIMAL) AS duration  # 80
FROM
    examination_info
WHERE
    tag LIKE '%,%';

全部评论

相关推荐

07-09 15:14
南京大学 C++
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-09 11:30
找工作7个月,投了7000封,3段世界五百强实习,才有一个offer,牛油们肯定比我强吧
码农索隆:不对不对不对,实习经历这么厉害,简历也没少投,问题出在哪呢
点赞 评论 收藏
分享
鬼迹人途:你去投一投尚游游戏,服务器一面,第一个图算法,做完了给你一个策略题,你给出方案他就提出低概率问题,答不上当场给你挂
点赞 评论 收藏
分享
下个早班:秒挂就是不缺人
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-08 13:15
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务