В идеале у вас должна быть другая таблица, которая поддерживает все возможные значения did
.В отсутствие этого мы можем попробовать использовать CTE здесь:
WITH cte AS (
SELECT 'A' AS did FROM dual UNION ALL
SELECT 'B' FROM dual UNION ALL
SELECT 'C' FROM dual
)
SELECT
t1.did,
t2.n1,
t2.n2,
t3.n3
FROM cte t1
LEFT JOIN t t2
ON t1.did = t2.did;
Конечно, это также означает, что если ваша таблица имеет больше , чем одна запись, соответствующая значению did
что ваш результирующий набор также будет иметь более одной записи для этого значения did
.Если вы всегда ожидаете одну запись на did
значение, то вам придется объяснить нам логику этого.