Редактирование: я использую Microsoft SQL Server Management Studio для запуска моих запросов. Microsoft SQL Server Standard Edition (64-разрядная версия) Я думаю.Строки запросов SQL к столбцам
У меня есть сложный запрос для запуска. Я понятия не имел, как это сделать, поэтому я пошел и напишу запрос, который составляет около 500 строк и много соединений. Не так, как должно быть купол.
Моя структура данных:
id user_id question_id answer1
1 1 1 a
2 1 2 c
3 1 3 a
4 2 1 c
5 2 2 a
... ... ... ...
Есть более 700 пользователей. Каждый пользователь ответил около 60 вопросов (раз 2, ответы на каждый вопрос 2, но это не имеет значения, если я могу получить хороший запрос для первого ответа). Есть некоторые вопросы, на которые я не заинтересован (и должен фактически пропустить).
Мой текущий результат состоит в следующем (хороший результат, но запрос слишком вертикальной качки):
user_id q1 q2 q3 q4 q8 q9 ... q60
1 a b c d b a ... a
2 b a c a c b ... w
3 y a w ... ...
Таким образом, в основном я хотел бы создать массив, скажем [1,2,3,4,8,9]
, говоря я заинтересован в эти идентификаторы запроса и запрос, поэтому я получаю эти столбцы как приведенный выше пример. Я не знаю, как это сделать.
Мой текущий запрос в подобных:
SELECT C.user_id, Q1, Q2, Q3, Q4, Q8, ...
FROM (
SELECT A.user_id, Q1, // and here tons of unions
В этом случае вам необходимо написать Dynamic Sql i.e. С помощью запроса генерации массива, а затем выполнить его. В sql-сервере вы можете запускать динамический запрос с помощью EXEC («Выбрать ...») – SeeTheC
Ваши данные и данные не совпадают, это намеренно? Кроме того, пометьте ваши данные СУБД. – DarkKnight
Какая СУБД вы используете? Postgres? Oracle? –