ISNULL SQL-функция в операторах case

ISNULL SQL-функция в операторах case

В этом блоге мы собираемся обсудить оператор CASE , который можно использовать для обработки нескольких логических операций. Мы также обсудим SQL-функцию ISNULL , которая позволит вам вернуть значение замены в случае, если есть выражения со значением NULL .

Оператор CASE и функция ISNULL очень полезны при работе с кодами, требующими большого количества логических операций, и для быстрой замены фиксированных или заданных значений выражением.

Оператор CASE в SQL похож на оператор IF ELSE . Однако он, скорее всего, похож на оператор SWITCH , который мы используем в DAX . С другой стороны, функция ISNULL предназначена для замены значения NULL конкретным значением, которое вы хотите использовать.

Оглавление

Использование оператора CASE в SQL

Предположим, что у нас есть столбцы ProductName и Sales Amount .

ISNULL SQL-функция в операторах case

Затем мы хотим создать дополнительный столбец с именем Description .

ISNULL SQL-функция в операторах case

Мы также хотим добавить логические операторы, которые будут отображать « Дешево », если сумма продаж меньше или равна 5 , а затем « Не так дешево » для значений от 6 до 100 . Если значение больше сотни, будет отображаться « Дорого ».

ISNULL SQL-функция в операторах case

В этом примере мы использовали оператор SELECT , чтобы выбрать столбец, который мы хотим просмотреть. После этого у нас есть оператор CASE , содержащий логические операции, о которых мы упоминали ранее.

При использовании оператора CASE операторы WHEN и THEN всегда используются для указания логических операций, которые мы хотим реализовать в выбранном столбце. Оператор ELSE предназначен для установки значения по умолчанию, если набор логических операций не был выполнен.

В конце оператора CASE у нас есть END AS и имя столбца рядом с ним. Это создаст новый столбец с именем Description со значениями, основанными на логических операциях, которые мы добавили в операторе CASE .

Использование SQL-функции ISNULL

Функция ISNULL предназначена для проверки наличия значений NULL в выбранном столбце и замены их любым указанным значением. Теперь давайте представим, что у нас есть следующие столбцы со значениями NULL .

ISNULL SQL-функция в операторах case

В приведенном выше примере все значения NULL заменяются значениями « Неизвестно ». Следующие строки кода используются для создания этого примера.

ISNULL SQL-функция в операторах case

При использовании функции ISNULL SQL вы должны начать с выбора столбца MiddleName с помощью оператора SELECT .

После этого вы должны использовать функцию ISNULL , чтобы проверить столбец MiddleName , указанный в круглых скобках, и заменить любое значение NULL в нем значением « Unknown ».

Функция AS предназначена для создания нового столбца, в данном случае это MiddleName_New .

Обратите внимание, что функция ISNULL заменяет значения NULL только в том случае, если определенное значение не равно NULL . Затем он вернет то же значение из столбца, которое вы указали в функции ISNULL .

Далее я воспользуюсь оператором CASE и функциями ISNULL в SSMS , чтобы вы увидели, как это работает на самом деле. 

Оператор CASE в SSMS

Начнем с выбора столбца FirstName из Person.Person . Обратите внимание, что в этом примере нет необходимости выбирать столбец. Это только для справки.

ISNULL SQL-функция в операторах case

Подняв этот столбец, давайте создадим столбец, который будет отображать значения независимо от того, является ли имя Ким или нет, с помощью оператора CASE . Для этого просто следуйте приведенному ниже примеру.

ISNULL SQL-функция в операторах case

В приведенном выше примере кода мы добавили условие с помощью инструкции CASE , где, если FirstName равно « Kim », будет отображаться « Да », а если нет, то вместо этого будет отображаться « Нет ».

Для этого примера я также создал новый столбец с именем « IsKim », используя функцию END AS . См. пример ниже для результата.

ISNULL SQL-функция в операторах case

Теперь давайте рассмотрим еще один пример использования инструкции CASE , применяя некоторые условия к столбцу TaxAmt из таблицы Sales.SalesOrderHeader .

Во-первых, давайте возьмем первые 100 столбцов из Sales.SalesOrderHeader , используя следующую строку кода, и найдем столбец TaxAmt .

ISNULL SQL-функция в операторах case

После этого начнем применять условия для столбца TaxAmt с оператором CASE , используя приведенный ниже пример.

ISNULL SQL-функция в операторах case

Как и в предыдущем примере, мы начали с выбора столбца, к которому мы хотим применить наши условия — в данном случае это столбец TaxAmt .

Затем в операторе CASE мы добавили условия, при которых, если TaxAmt меньше или равен 500, будет отображаться значение « Perfect ». Если TaxAmt меньше или равно 2000 , будет отображаться значение « Хорошо ».

Кроме того, если условия не были соблюдены, будет отображаться значение « Неудовлетворительно » . В конце инструкции я создал новый столбец с именем TaxClass .

ISNULL SQL-функция в операторах case

Вот как мы используем оператор CASE в SQL . Обратите внимание, что вы можете установить столько условий, сколько захотите. Просто не забудьте использовать операторы WHEN и THEN , а также функцию END AS для создания нового столбца, в котором будут отображаться результаты.

ISNULL SQL-функция в SSMS

В этом примере я буду использовать ту же таблицу, что и в предыдущем примере. Затем я покажу, как вы можете использовать эту функцию для замены значений NULL в столбце CurrencyRateID

ISNULL SQL-функция в операторах case

После выбора таблицы из приведенного выше примера мы можем увидеть значения NULL в столбце CurrencyRateID . Теперь я хочу заменить эти значения NULL на ' 1 .' Для этого обратитесь к примеру ниже.

ISNULL SQL-функция в операторах case

Чтобы изменить значения NULL в определенном столбце, сначала нам нужно выбрать столбец со значениями NULL. В данном случае это CurrencyRateID . Затем мы воспользуемся функцией ISNULL и выберем столбец, который будет проверяться функцией ISNULL , то есть CurrencyRateID .

Нам также нужно объявить значение замены, которое мы хотим использовать — для этого примера я использовал « 1 ». Наконец, мы добавим функцию AS для создания нового столбца с именем NewRate .

В результате все значения NULL были заменены на « 1 » в столбце NewRate , а те, у которых не было значения NULL , остались прежними. Кроме того, вы также можете изменить значение NULL в столбце. Вы можете сделать это, следуя приведенному ниже примеру.

ISNULL SQL-функция в операторах case

Используя тот же синтаксис, что и в предыдущем примере, мы просто добавили SalesOrderID рядом с CurrencyRateID в качестве ссылки перед функцией ISNULL . Затем мы изменили значение замены на SalesOrderID . Этот оператор просто проверит значения NULL в столбце CurrencyRateID и заменит их значениями из столбца SalesOrderID .

Заключение

Таким образом, вы узнали, как использовать оператор CASE и функцию ISNULL вместе с правильным синтаксисом в SQL . Вы также узнали, что в оператор CASE можно включить любое количество логических условий . Просто обратите внимание, что оператор CASE похож на оператор SWITCH или IF ELSE .

В дополнение к функции ISNULL вы узнали, что существуют различные способы замены значения NULL при использовании этой функции, которые заключаются в использовании фиксированного значения или столбца.

Всего наилучшего,

Хафиз






Что такое self в Python: примеры из реального мира

Что такое self в Python: примеры из реального мира

Что такое self в Python: примеры из реального мира

Как сохранить и загрузить файл RDS в R

Как сохранить и загрузить файл RDS в R

Вы узнаете, как сохранять и загружать объекты из файла .rds в R. В этом блоге также рассказывается, как импортировать объекты из R в LuckyTemplates.

Новый взгляд на первые N рабочих дней — решение для языка кодирования DAX

Новый взгляд на первые N рабочих дней — решение для языка кодирования DAX

В этом руководстве по языку программирования DAX вы узнаете, как использовать функцию GENERATE и как динамически изменять название меры.

Продемонстрируйте идеи с помощью метода многопоточных динамических визуализаций в LuckyTemplates

Продемонстрируйте идеи с помощью метода многопоточных динамических визуализаций в LuckyTemplates

В этом учебном пособии рассказывается, как использовать технику многопоточных динамических визуализаций для создания аналитических сведений из динамических визуализаций данных в ваших отчетах.

Введение в фильтрацию контекста в LuckyTemplates

Введение в фильтрацию контекста в LuckyTemplates

В этой статье я пройдусь по контексту фильтра. Контекст фильтра — одна из основных тем, с которой должен ознакомиться любой пользователь LuckyTemplates.

Лучшие советы по использованию приложений в онлайн-службе LuckyTemplates

Лучшие советы по использованию приложений в онлайн-службе LuckyTemplates

Я хочу показать, как онлайн-служба LuckyTemplates Apps может помочь в управлении различными отчетами и аналитическими данными, созданными из различных источников.

Анализ изменений маржи прибыли с течением времени — аналитика с LuckyTemplates и DAX

Анализ изменений маржи прибыли с течением времени — аналитика с LuckyTemplates и DAX

Узнайте, как рассчитать изменения вашей прибыли, используя такие методы, как разветвление показателей и объединение формул DAX в LuckyTemplates.

Идеи материализации кэшей данных в DAX Studio

Идеи материализации кэшей данных в DAX Studio

В этом руководстве будут обсуждаться идеи материализации кэшей данных и то, как они влияют на производительность DAX при предоставлении результатов.

Бизнес-отчетность с использованием LuckyTemplates

Бизнес-отчетность с использованием LuckyTemplates

Если вы все еще используете Excel до сих пор, то сейчас самое подходящее время, чтобы начать использовать LuckyTemplates для своих бизнес-отчетов.

Что такое шлюз LuckyTemplates? Все, что тебе нужно знать

Что такое шлюз LuckyTemplates? Все, что тебе нужно знать

Что такое шлюз LuckyTemplates? Все, что тебе нужно знать