题解 | 请按城市对客户进行排序,如果城市为空,则按国家排序

请按城市对客户进行排序,如果城市为空,则按国家排序

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

select * from customers_info
order by case
when city is null then country
else city
end

使用示例

假设有 students 表:

1

张三

85

2

李四

59

3

王五

92

示例 1:用 CASE WHEN 分类成绩等级(搜索型)

sql

SELECT 
    name,
    score,
    CASE
        WHEN score >= 90 THEN '优秀'
        WHEN score >= 60 THEN '及格'
        ELSE '不及格'  -- 其他情况(<60)
    END AS grade_level
FROM students;

结果:

张三

85

及格

李四

59

不及格

王五

92

优秀

示例 2:用简单 CASE 表达式匹配固定值

sql

SELECT 
    name,
    CASE name
        WHEN '张三' THEN '一班'
        WHEN '李四' THEN '二班'
        ELSE '其他班级'
    END AS class
FROM students;

结果:

张三

一班

李四

二班

王五

其他班级

示例 3:在 UPDATE 中更新数据(按条件赋值)

sql

-- 根据成绩更新“是否达标”字段
UPDATE students
SET is_qualified = CASE
    WHEN score >= 60 THEN 1  -- 1表示达标
    ELSE 0  -- 0表示不达标
END;

示例 4:在 WHERE 中筛选条件

sql

-- 筛选“优秀”或“不及格”的学生
SELECT name, score
FROM students
WHERE CASE
    WHEN score >= 90 THEN 1
    WHEN score < 60 THEN 1
    ELSE 0
END = 1;

结果:

李四

59

王五

92

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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