Я занимаюсь объединением нескольких операторов выбора, основанных на разных таблицах. Проблема заключается в том, что вывод автоматически сортируется по столбцу TOTAL_NUM вместо того, чтобы оставаться в том порядке, в котором я сделал соединение. Есть ли способ избежать этого?Как предотвратить сортировку в proc sql union в SAS?
Вот пример моего кода.
proc sql;
SELECT COUNT(loannumber) AS TOTAL_NUM, SUM(LoanAmt) as LOAN_AMOUNT FROM sub_620 WHERE Flag = 1
union
SELECT COUNT(loannumber) AS TOTAL_NUM, SUM(LoanAmt) as LOAN_AMOUNT FROM 620_639 WHERE Flag = 1
union
SELECT COUNT(loannumber) AS TOTAL_NUM, SUM(LoanAmt) as LOAN_AMOUNT FROM 640_660 WHERE Flag = 1
union
SELECT COUNT(loannumber) AS TOTAL_NUM, SUM(LoanAmt) as LOAN_AMOUNT FROM V700_719 WHERE Flag = 1
union
SELECT COUNT(loannumber) AS TOTAL_NUM, SUM(LoanAmt) as LOAN_AMOUNT FROM 720_739 WHERE Flag = 1
union
SELECT COUNT(loannumber) AS TOTAL_NUM, SUM(LoanAmt) as LOAN_AMOUNT FROM 740_759 WHERE Flag = 1;
run;
Результат такой, но отсортирован по TOTAL_NUM вместо порядка операторов.
Извините, только что нашел этот ответ, объяснив это. http://stackoverflow.com/questions/21181664/sql-server-union-but-keep-order –
Нет никакой гарантии, что он сохранит заказ в таблице. Порядок строк SQL не гарантируется, если вы явно не заказываете его точно так, как хотите. – Reeza