Как объединить столбцы в SQL одной и той же таблицы - PullRequest
1 голос
/ 01 апреля 2019

У меня есть два столбца даты. Иногда у них обоих есть даты (которые всегда будут одинаковыми в обоих столбцах), а иногда одна пуста, а другая имеет значение даты. Итак, вместо двух столбцов я пытаюсь получить один столбец. Если один из них пуст, он будет принимать значение даты из другого столбца, а если оба имеют значения (которые всегда будут одинаковыми), он просто получит любое значение из двух столбцов.

Я пробовал команды UNION, но они не дают желаемого результата.

enter image description here

Ответы [ 5 ]

2 голосов
/ 01 апреля 2019

SQL Server имеет несколько различных вариантов для этого сценария. Вы можете использовать оператор COALESCE , ISNULL или CASE .

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

2 голосов
/ 01 апреля 2019

Добро пожаловать в Переполнение стека!

Вам нужно Объединить

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

0 голосов
/ 01 апреля 2019

Кажется, что нет ни одного случая, чтобы оба столбца были пустыми, тогда в таком состоянии вы можете сделать что-то вроде этого:

 SELECT
       CASE
              WHEN column1 IS NULL THEN column2
              WHEN column2 IS NULL THEN column1
              ELSE column1 orcolumn2 
0 голосов
/ 01 апреля 2019
UPDATE tableName
SET Date1Column = ISNULL(Date1Column, Date2Column);

Контекст: ISNULL ( check_expression , replacement_value ), если первый аргумент не равен нулю, он будет использовать этот аргумент.

После обновления удалите другой столбец.

0 голосов
/ 01 апреля 2019

Вы можете использовать оператор ISNULL, если это SQL

SELECT  ISNULL(ReturnDate,RepartureDate) as dateAct FROM AviationReservation_dev
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...