Мазмунга өтүү

CASE туюнтмалары жана шарттуу логика

Сабактын башталышы

CASE туюнтмалары жана шарттуу логика

SQL ар бир сапка маани тандап, маалыматты категорияларга бөлүп жана топтомдорду бир өтүүдө санасын

Негизги идея: CASE - бул SQL тилинин if / else каражаты. Ал ар бир сапты карайт, шарттарды кезек менен текшерет жана биринчи чын болгон шарттын маанисин кайтарат. Бул туюнтма болгондуктан, аны SELECT тизмесине, ORDER BY ичине, WHERE ичине, атүгүл сизге керектүү саптарды так санаш үчүн SUM() сыяктуу агрегаттын ичине да коюуга болот.
Бул теманын аягында сиз төмөнкүлөрдү жасай аласыз:
  • CASE нын жөнөкөй жана изделүүчү формаларын жазуу,
  • саптарды белгилерге же баа диапазондоруна бөлүү,
  • топтомдорду санаш жана пивот түзүү үчүн шарттуу агрегация үлгүсүн (SUM(CASE ... )) колдонуу,
  • NULLIF менен нөлгө бөлүүдөн коргонуу,
  • IFNULL / COALESCE аркылуу NULL ди камдык маани менен алмаштыруу.

0. Мисал таблица

Төмөнкү ар бир суроо-талап экзамен жыйынтыктарынын бир кичине таблицасы боюнча иштейт. Кээ бир баалар NULL, анткени студент катышкан эмес, ал эми бир студентте attempts = 0 - эки факт тең кийин керек болот.

CREATE TABLE students (
  student_id  INT PRIMARY KEY,
  full_name   VARCHAR(50),
  subject     VARCHAR(20),
  score       INT,          -- 0..100, эгер студент катышпаса NULL
  attempts    INT
);

INSERT INTO students VALUES
  (1, 'Aida Nurlan',   'Math',    92,   1),
  (2, 'Bekzat Orozov', 'Math',    58,   2),
  (3, 'Chris Doyle',   'Math',    NULL, 0),
  (4, 'Dina Sultan',   'History', 74,   1),
  (5, 'Erlan Kadyr',   'History', 45,   3),
  (6, 'Farida Iman',   'Science', 88,   1),
  (7, 'Gulnara Sadyk', 'Science', 63,   2),
  (8, 'Hasan Umar',    'Science', NULL, 0);

Бул таблицаны эсиңизде сактаңыз: 8 студент, 3 предмет, эки катышпаган (баалары NULL).

Бул сабакты YourAIZone платформасында улантыңыз

Толук сабакта — толук түшүндүрмө, чыгарылган мисалдар, көп кездешкен каталар, заматта текшерилүүчү тесттер жана ЖИ-репетитор. Конок катары дароо баштаңыз же прогрессти сактоо үчүн аккаунт түзүңүз.

Толук сабакта

  • Толук түшүндүрмө
  • Чыгарылган мисалдар
  • Көп кездешкен каталар жана алардан кантип качуу керек
  • Тест суроолору: 15
  • Тема боюнча суроолорго жооп берген ЖИ-репетитор
  • Окуучу, ата-эне жана мугалим үчүн прогрессти көзөмөлдөө