Как использовать CASE WHEN SQL в Teradata

Как использовать case when в SQL Teradata?

Для использования оператора case when в Teradata SQL, вы можете использовать следующий синтаксис:


SELECT column1, 
       column2,
       CASE 
         WHEN condition1 THEN result1
         WHEN condition2 THEN result2
         ELSE result3
       END AS alias
FROM table_name;

В этом примере вы можете заменить column1, column2 и table_name на ваши собственные значения. Затем вы можете определить условия и соответствующие результаты, которые должны быть возвращены, используя операторы WHEN. Если ни одно из условий не удовлетворено, будет возвращено значение result3.

На практике это может выглядеть следующим образом:


SELECT name, salary,
       CASE 
         WHEN salary > 5000 THEN 'High'
         WHEN salary > 2000 THEN 'Medium'
         ELSE 'Low'
       END AS salary_level
FROM employees;

В этом примере мы используем столбцы name и salary из таблицы employees. Затем мы определяем три разных условия: если зарплата превышает 5000, то `salary_level` будет `'High'`, если зарплата превышает 2000, то `salary_level` будет `'Medium'`, в противном случае будет `'Low'`.

Детальный ответ

Конструкция CASE WHEN в SQL Teradata

В SQL Teradata конструкция CASE WHEN используется для выполнения условного выражения. Она позволяет создавать логические условия и возвращать различные значения в зависимости от удовлетворения этих условий.

Конструкция CASE WHEN имеет следующий синтаксис:

CASE
   WHEN condition1 THEN result1
   WHEN condition2 THEN result2
   ...
   ELSE resultN
END

В этом выражении condition1, condition2, и т.д. представляют логические условия, а result1, result2, и т.д. - значения, которые возвращаются при удовлетворении соответствующих условий.

Примеры использования конструкции CASE WHEN

Пример 1:

Предположим, у нас есть таблица "Students" со следующей структурой:

CREATE TABLE Students (
   StudentID INT,
   FirstName VARCHAR(50),
   LastName VARCHAR(50),
   Age INT
);

Мы хотим добавить новый столбец "AgeGroup", в котором будет указано, к какой возрастной группе относится каждый студент. Мы можем использовать конструкцию CASE WHEN для этой цели:

SELECT StudentID, FirstName, LastName, Age,
   CASE
      WHEN Age < 18 THEN 'Under 18'
      WHEN Age >= 18 AND Age < 25 THEN '18-24'
      ELSE '25 and above'
   END AS AgeGroup
FROM Students;

В данном примере, если возраст студента меньше 18, то его возрастная группа будет "Under 18", если возраст студента находится в диапазоне от 18 до 24, то его возрастная группа будет "18-24", в противном случае его возрастная группа будет "25 and above". Результат будет содержать столбец "AgeGroup" с указанием возрастной группы каждого студента.

Пример 2:

Предположим, у нас есть таблица "Employees" со следующей структурой:

CREATE TABLE Employees (
   EmployeeID INT,
   FirstName VARCHAR(50),
   LastName VARCHAR(50),
   Salary DECIMAL(10, 2)
);

Мы хотим добавить новый столбец "SalaryCategory", в котором будет указана категория заработной платы каждого сотрудника. Мы можем использовать конструкцию CASE WHEN для этой цели:

SELECT EmployeeID, FirstName, LastName, Salary,
   CASE
      WHEN Salary < 50000 THEN 'Low'
      WHEN Salary >= 50000 AND Salary < 100000 THEN 'Medium'
      ELSE 'High'
   END AS SalaryCategory
FROM Employees;

В данном примере, если заработная плата сотрудника меньше 50000, то его категория будет "Low", если заработная плата находится в диапазоне от 50000 до 99999, то его категория будет "Medium", в противном случае его категория будет "High". Результат будет содержать столбец "SalaryCategory" с указанием категории заработной платы каждого сотрудника.

Вывод

Конструкция CASE WHEN в SQL Teradata очень полезный инструмент, который позволяет выполнять условные операции и гибко обрабатывать данные. Она позволяет легко создавать логические условия и возвращать различные значения в зависимости от этих условий. Это может быть полезно при фильтрации данных, группировке или преобразовании результатов запросов.

Видео по теме

SQL Tips | What is the output of CASE when Multiple Conditions are TRUE!

SQL Tutorial - Nesting CASE statements

Оператор CASE SQL. Примеры CASE WHEN

Похожие статьи:

Как использовать CASE WHEN SQL в Teradata