Насколько я могу сказать, "один столбец distinct
" не существует: distinct
всегда применяется ко всей записи (если не используется в агрегате, таком как count(distinct name)
).Причина этого в том, что SQL не может угадать, какие значения Value
оставить вам, а какие отбросить.Это то, что вам нужно определить самостоятельно.
Попробуйте использовать GROUP BY
, чтобы гарантировать, что ID
не повторяется, и любой агрегат (здесь MIN
, как в вашем примере это был выживший минимум), чтобы выбрать конкретное значение Value
:
SELECT ID, min(Value) FROM (SELECT * FROM T1 UNION ALL SELECT * FROM T2) AS T3
GROUP BY ID
Должно быть именно то, что вам нужно.То есть это не тот же запрос, и в нем нет distinct
, но это запрос, который возвращает то, что показано в примере.