Как использовать 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 очень полезный инструмент, который позволяет выполнять условные операции и гибко обрабатывать данные. Она позволяет легко создавать логические условия и возвращать различные значения в зависимости от этих условий. Это может быть полезно при фильтрации данных, группировке или преобразовании результатов запросов.