Как выполнить запрос mysql с целью возврата 2 строк, когда в - PullRequest
1 голос
/ 24 марта 2020
SELECT DISTINCT '12345'  AS AlphabetID,
                 CASE
                    WHEN letter='a' THEN 'a'
                    END AS letter

Это вернет одну строку с результатом:

 AlphabetID | letter
 | 12345    | a

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

По существу, добавление строк на лету при выполнении условий.

Мой мыслительный процесс попытался:

SELECT DISTINCT '12345'  AS AlphabetID,
                 CASE
                    WHEN letter='a' THEN 'a'
                    WHEN letter='a' THEN 'ax'
                    END AS letter

Желаемый результат:

 AlphabetID | letter
 | 12345    | a
 | 12345    | ax

1 Ответ

1 голос
/ 24 марта 2020

Вы ищете union all?

SELECT DISTINCT '12345'  AS AlphabetID, 'a' as letter
FROM e
WHERE E.Chem_ID_Login = 'a'
UNION ALL
SELECT DISTINCT '12345'  AS AlphabetID, 'ax' as letter
FROM e
WHERE E.Chem_ID_Login = 'a';

Или CROSS JOIN:

SELECT DISTINCT '12345'  AS AlphabetID, l.letter
FROM e CROSS JOIN
     (SELECT 'a' as letter UNION ALL SELECT 'ae') l
WHERE E.Chem_ID_Login = 'a'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...