Существует ли синтаксис SQL, который будет создавать новый столбец путем поиска в 2 столбцах на основе равного значения 3-го столбца в той же таблице? - PullRequest
1 голос
/ 24 июня 2019

У меня есть 1 таблица с именами полей: class_code, name1, class_code1, name2, class_code2. Я хотел бы найти значение class_code и отобразить его как class_code и только имя, где class_code = class_code1 или class_code = class_code2. Результаты будут отображать class_code и имя

Возможно ли это с помощью синтаксиса sql join?

Это таблица:

    class_code  name1     class_code1   name2     class_code2
    C0001       John      C0002         Ben       C0001
    C0002       Ren       C0001         Elizh     C0002
    C0001       Jeff      C0001         Harry     C0001

Вывод, который мне нужен:

    class_code        name
    C0001             Ben
    C0002             Elizh
    C0001             Jeff
    C0001             Harry

Ответы [ 2 ]

1 голос
/ 24 июня 2019

Если я правильно понял

SELECT class_code, name1 
FROM tbl
WHERE class_code = class_code1 
UNION --ALL
SELECT class_code, name2
FROM tbl
WHERE class_code = class_code2
1 голос
/ 24 июня 2019

Если предполагается, что class_code1 и name1 должны идти вместе, а class_code2 и name2 идти вместе, вы можете сделать это с помощью UNION:

SELECT class_code1 AS class_code, name1 AS name FROM table
UNION
SELECT class_code2 AS class_code, name2 AS name FROM table
...