Подтвердить что ты не робот

Выберите столбец, если другой столбец равен нулю.

Мне нужно выбрать поле, называемое ProgramID, из таблицы, и если идентификатор ProgramID равен NULL, тогда мне нужно выбрать значение в InterimProgramID из той же таблицы и указать его как ProgramID.

Как я могу сделать условный оператор SELECT для этого?

4b9b3361

Ответ 1

Вам нужна функция ISNULL.

SELECT ISNULL(a, b)

b выбирается, если a равно нулю.

Кроме того, вы можете использовать вариант выбора WHEN/THEN, поиск в BOL. По существу: блок c switch/case соответствует SQL.

Ответ 2

Вы можете использовать функцию ISNULL или функцию COALESCE. Они оба делают почти то же самое, однако ISNULL принимает только два параметра, а COALESCE принимает несколько параметров (возвращает первый непустой, который он встречает). Оба проверяют первый параметр, затем второй (и COALESCE продолжается)

DECLARE @IAMNULL VARCHAR
DECLARE @IAMNOTNULL VARCHAR
SET @IAMNOTNULL = 'NOT NULL'

SELECT ISNULL(@IAMNULL, @IAMNOTNULL)
--Output: 'NOT NULL'

DECLARE @IAMNULLALSO VARCHAR

SELECT COALESCE(@IAMNULL, @IAMNULLALSO, @IAMNOTNULL)
--Output: 'NOT NULL'

Ответ 3

  select COALESCE ( ProgramID , InterimProgramID ) as 'ProgramID' 

Ответ 4

SELECT ProgramID
  FROM a_table
 WHERE ProgramID IS NOT NULL
UNION
SELECT InterimProgramID AS ProgramID
  FROM a_table
 WHERE ProgramID IS NULL;

Ответ 5

Вы также можете использовать функцию IFNULL

select IFNULL(ProgramId,interimId) as ProgramId

Ответ 6

Coalesce ('zzz-' + ProgramID, InterimID), поскольку programID по-прежнему игнорирует ProgramID, даже если у вас есть значение предлога. Это классная небольшая функция