Member 3892343 Ответов: 2

Выберите значение поля в SQL, если не нуль


У меня есть база данных SQL с 5 полями, мне нужен оператор select, который будет выбирать значение из одного поля, если оно не равно null, или же он будет выбирать из второго. Я нашел условие случая, но не знаю, как его сформулировать.

SELECT CASE 
            WHEN tel is not null
               THEN select tel 
               ELSE select mob 
       END as Saleable 
FROM Product


Что я уже пробовал:

До сих пор я ничего не пробовал, но я бы попробовал приведенный выше код

2 Ответов

Рейтинг:
5

Karthik_Mahalingam

попробовать это

SELECT CASE 
            WHEN tel is not null
               THEN   tel 
               ELSE   mob 
       END as Saleable 
FROM Product


Maciej Los

Картик, есть ли какая-то разница в ОП-запросе? - Не понимаю... ;(

Karthik_Mahalingam

Привет Мацей
Я выполнил его код, и он выдал синтаксическую ошибку, поэтому я просто удалил "select" и выполнил его, дав правильный результат.

Maciej Los

Я пропустил, что "SELECT"находится внутри корпуса... КОГДА...оператор end. Хороший улов!
А 4, потому что есть самый простой способ добиться этого ;)

Karthik_Mahalingam

:) Спасибо Мацей

Да, согласитесь, я только что отредактировал запрос ОП..

Рейтинг:
12

Maciej Los

Самый простой способ-использовать Функция coalesce [^].


SELECT COALESCE(tel, mob) as Saleable 
FROM Product


С помощью CASE ... WHEN ... END заявление:
SELECT CASE WHEN tel IS NULL THEN mob ELSE tel END as Saleable 
FROM Product


Karthik_Mahalingam

Счетчик 5 для более простого решения.

Maciej Los

Спасибо, Картик.