>_ IzzyLab

Практическое задание

SQLite: категоризация через CASE

средне

В базе /root/school.db есть таблица students(name TEXT, score INTEGER). Составь запрос с выражением CASE, который переводит числовой балл в буквенную оценку по правилу: score >= 90A, score >= 70 (но меньше 90) → B, иначе → C. Запиши результат в /root/grades.txt в формате name|оценка.

Что потренируешь:
  • case
  • условные выражения
  • категоризация
  • select
  • sqlite3

Разбор темы

CASE — это условное выражение внутри SQL, аналог «если — иначе»: оно перебирает ветки WHEN <условие> THEN <значение> сверху вниз и возвращает значение первой сработавшей, а ELSE покрывает остальные случаи. Порядок веток критичен — при пересекающихся порогах более «сильное» условие ставят раньше, иначе строка провалится в неверную категорию. Такое выражение помещают прямо в SELECT рядом с другими колонками; текстовые значения берут в одинарные кавычки. Колонки в выводе sqlite3 разделяются |.

Что проверяется

  1. высокий балл получил оценку A
  2. средний и низкий баллы категоризированы верно

Как это выглядит