SQLServer 的面试题资源还挺实用的,里面总结了不少常考点,比如查询优化、合并列、表合并还有union 和 union all 的区别。讲得都比较接地气,配了不少 SQL 示例,照着练一练思路就清晰了。
查询优化的技巧,像是用索引、减少 JOIN 这些,讲得比较清楚。嗯,写 SQL 的时候这些优化手法真的是省时省力,尤其面对大数据表,效率差别还挺大。
查学生成绩那个题蛮经典的,就是每门课都要 80 分以上,写起来有点绕,但了两种思路,挺值得你试一试,练逻辑能力。
列合并这块儿用的是CASE
语句,比如FullName
和FirstName
有空值的时候,选一个不为空的,组合成统一的Name
列。响应也快,代码也简单。
表合并这个部分例子挺接地气的。用UNION ALL
把语文
、数学
、物理
几门课成绩合成一张表,再加排序逻辑,一目了然。
union vs union all讲得也蛮清楚,主要是效率问题。union
会去重、排序,union all
就直接合并,快不少。如果你能确保数据不会重复,用union all
更合适。
如果你面试经常碰 SQL 题,或者刚好在复习 SQLServer,这篇文章还是挺值得一看的。实战性强,而且例子也不晦涩,适合边看边练。