d580a088

Обновление значений на основе условия



Обновление значений на основе условия

Выражение CASE можно поместить почти в любом месте оператора SQL, где только может находиться значение. Поэтому использование этого выражения раскрывает перед вами огромные возможности. Можно использовать CASE внутри оператора UPDATE (обновить), чтобы, например, на основе определенного условия по-разному изменять табличные значения. Проанализируйте следующий пример:

UPDATE FOODS

    SET RATING = CASE

        WHEN FAT < 1

            THEN 'очень мало жиров'

        WHEN FAT < 5

            THEN 'мало жиров'

        WHEN FAT < 20

            THEN 'среднее количество жиров'

        WHEN FAT < 50

            THEN 'высокое количество жиров'

        ELSE 'сплошные жиры'

END ;

Этот оператор проверяет по порядку условия WHEN, пока не встретится первое истинное значение, после чего он игнорирует оставшиеся условия.

В табл. 7.2 было показано содержимое жиров в 100 граммах некоторых продуктов питания. Таблица из базы данных, содержащая эту информацию, может также иметь столбец RATING (оценка), который дает быструю оценку величины содержания жиров. Если запустить предшествующий оператор UPDATE в таблице FOODS (продукты питания) из главы 7, то у спаржи будет оценка "очень мало жиров", у цыплят — "мало жиров", а жареные миндальные орехи попадут в категорию "сплошные жиры".



Содержание раздела