2013-12-09 4 views
-4

Имея две таблицы, я хочу отобразить результат из альтернативных строк из обеих таблиц, как и UNION ALL.Как выбрать альтернативные строки из двух таблиц

Можете ли вы помочь мне найти решение в запросе MS SQL Server?

отчеты Table1:

id - value 
------------- 
1 - abc 
4 - dce 
9 - fgh 
16 - ijk 
25 - lmn 

отчеты Table2:

id - value 
------------- 
5 - opq 
10 - rst 
15 - uvw 
20 - xyz 
25 - zab 

Результат я хочу:

Id - value 
----------- 
1 - abc 
5 - opq 
15 - uvw 
9 - fgh 
15 - uvw 
20 - xyz 
16 - ijk 
25 - lmn 
25 - zab 

---------------- 
+6

Столы не имеют неотъемлемого порядка. Если вы хотите, чтобы результаты отображались в определенном порядке, вы должны сообщить нам (и SQL Server), какие правила предназначены для того, в каком порядке должны быть отсортированы строки. На данный момент вы вряд ли получите ответ, так как мы не знаем, как выглядят таблицы, не говоря уже о правильном правиле. –

ответ

3

Я думаю, что это будет делать это для вас, но у вас есть для изменения запроса и добавления имен таблиц и имен столбцов в ORDER BY Утверждение статьи OVER. Обратите внимание, что обе таблицы должны иметь одинаковое количество столбцов и одинаковые типы данных, чтобы они работали в UNION.

SELECT 
    ROW_NUMBER() OVER (ORDER BY column), 
    1 AS 'rowOrder', 
    * 
FROM TABLE1 

UNION ALL 

SELECT 
    ROW_NUMBER() OVER (ORDER BY column), 
    2 AS 'rowOrder', 
    * 
FROM TABLE2 
ORDER BY 1, 2 
+0

Nice .. его работая отлично. спасибо ... –

+0

Тогда не забудьте отметить его как правильный ответ. –

Смежные вопросы