У меня есть таблица с двумя столбцами: первый столбец идентификатора (назовем его идентификатором) и второй столбец значения (назовем его ЗНАЧЕНИЕМ).Столбец VALUE может иметь два значения: «Один» и «Два».Большинство идентификаторов появляются один раз в таблице со значением «Один» ИЛИ «два».Однако есть несколько идентификаторов, которые дважды появляются в столбце: один раз со значением «Один» и второй раз со значением «Два».Я сейчас пытаюсь написать запрос, который приводит к таблице с двумя столбцами, в которой все идентификаторы появляются только один раз.Первый столбец должен содержать идентификатор, второй должен содержать значения «Один», «Два» или «Один и два» в случае, если идентификатор имел два значения в исходной таблице.Мой запрос до сих пор:
WITH (
SELECT id, 'One & Two' as value
FROM table_name
GROUP BY id HAVING COUNT(*) = 2
) AS both_values, (
SELECT id, value
FROM table_name
WHERE id NOT IN (SELECT id FROM both_values)
) AS other_values
SELECT * FROM other_values
UNION
SELECT * FROM both_values;
Этот шов не работает, и мне не удается написать простой запрос, чтобы получить этот результат.Может кто-нибудь помочь мне, пожалуйста?
РЕДАКТИРОВАТЬ: добавление :: varchar после того, как 'One & Two' сделал это.Тем не менее, это не кажется мне эффективным запросом.Любые иды, чтобы оптимизировать это?