Создать столбец со значениями из нескольких столбцов в SQL - PullRequest
0 голосов
/ 17 мая 2018

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

Например,

SELECT
  concat("Selecting Col1 or 2", cast("Col1" OR "Col2" as string)) AS relevantinfo,
FROM table

Я не знаю много SQL, и я знаю, что этот запрос не работает. Это вообще возможно сделать?

Col1    Col2
1       
         4
3
4
         5

ФИНАЛЬНЫЙ РЕЗУЛЬТАТ

Col1    Col2    relevantinfo
1                1
        4        4
3                3
4                4
        5        5

Ответы [ 2 ]

0 голосов
/ 17 мая 2018

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

Я бы предпочел использовать такой запрос с IFNULL/ISNULL(ColumnName, 'Value to use if the col is null'):

--This will work only if there can't be a value in both column at the same time
--Mysql
SELECT CONCAT(IFNULL(Col1,''),IFNULL(Col2,'')) as relevantinfo FROM Table

--Sql Server
SELECT CONCAT(ISNULL(Col1,''),ISNULL(Col2,'')) as relevantinfo FROM Table
0 голосов
/ 17 мая 2018

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

SELECT col1, col2, COALESCE(col1, col2) AS col3 
FROM t1;

Рабочий пример: http://sqlfiddle.com/#!9/05a83/1

...