2016-11-03 1 views
1

В моей таблице есть только 1 строка и много столбцов. Мне нужно вернуть только 1 столбец и много строк. Можно выполнить транспонирование через SAS SQL?Транспонирование таблицы с одной строкой и многими столбцами с использованием SAS SQL

До:

column1 column2 column3 column4 
    1  2  3  4 

После:

column 
    1 
    2 
    3 
    4 
+0

Непростые решения. SQL не допускает коротких сокращений списка переменных. Вы должны использовать proc transpose. Если вы настаиваете на SQL, вам понадобится макрос, чтобы сначала определить количество столбцов, а затем генерировать ваши утверждения объединения динамически. Я не думаю, что это стоит усилий лично. – Reeza

ответ

0

Почему бы не использовать PROC TRANSPOSE, вам не обязательно знать, сколько столбцов или даже имена PROC TRANSPOSE по умолчанию переносит все числовые столбцы.

proc transpose data= out= ; 
    run; 
+0

не каждый столбец является числовым ... – Keliimek

+1

SAS преобразует все в символ. Вы можете просто использовать VAR _ALL_; –

0

Поскольку вы упоминаете SAS SQL (в отличие от любого другого прок SAS), это решение, хотя это будет немного многословным, если у вас есть много столбцов:

Это просто объединяет (складывает) каждую колонку.

+0

но я не знаю, сколько столбцов содержит таблицу ... я не могу использовать это, существует какое-то другое решение? – Keliimek

+0

Почему бы вам не знать, сколько столбцов в вашей таблице? – Nicarus

+0

, потому что этот скрипт должен быть универсальным для большего количества таблиц, и каждая таблица содержит другое количество столбцов – Keliimek

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