2012-01-18 3 views
3

У меня есть два столбца в таблице. Мне нужно, чтобы объединить эти два столбца в 1 колонке, а убедившись, что все значения в результирующем столбце не являются уникальными (не повторение идентификаторов) например:объединить два столбца в один столбец и получить уникальный

ChildCard PrimaryCard 
123456   123456 
123450   123456 
123446   123446 
123456   123446 
156456   155456 
157456   155456 
121290   124290 
234567   204567 

Результат

CardID 
123456 
123450 
123446 
123456 
156456 
157456 
121290 
234567 
124290 
204567 

Любая помощь здесь будет отличной.

Спасибо.

+0

Что вы сделали там? Кажется, результат - это только детская открытка. Не вижу «комбинации обоих». Можете уточнить, пожалуйста. – wmorrison365

+0

от ChildCard и PrimaryCard, которые вы хотите сформировать CardID, и он может содержать ChildCard или PrimaryCard таким образом, чтобы все CardID были уникальными, так это? –

ответ

4
SELECT ChildCard AS CardID FROM tbl UNION SELECT PrimaryCard FROM tbl 

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

+0

Хорошо работает – happysmile

0

Ваш самый безопасный вариант - использовать идентификатор, который является просто конкатенацией обоих идентификаторов.

Запрос генерировать все новые идентификаторы будут:

select PrimaryCard + '_' + ChildCard as CardId 
    from your_table; 
2

Вы можете использовать команду SQL UNION для создания представления на основе двух наборов данных.

UNION сбрасывает дубликаты записей во время слияния. UNION ALL сохраняет повторяющиеся записи.

См здесь для получения дополнительной информации http://msdn.microsoft.com/en-us/library/ms180026.aspx

1
SELECT ChildCard CardID 
FROM tbl 
UNION 
SELECT PrimaryCard 
FROM tbl 
+0

Thanx, подумал, что союз просто удаляет дубликаты из второго запроса! –

1

Вы можете выбрать различные идентификаторы, как это:

SELECT ChildCard AS ResultID FROM Table1 
UNION 
SELECT PrimaryCard AS ResultID FROM Table1