У меня странный вопрос о SQL.SQL-запрос - преобразование строк таблицы в столбцы
У меня есть 2 таблицы, скажем, продукты (с столбцами pid и pname) и правила (со столбцами rid и rname), и эти две таблицы не имеют ничего общего. Таблица продуктов содержит 100 строк, а таблица правил имеет 16 строк.
Мне нужно написать запрос таким образом, чтобы результат, который я получил, имеет имя pname в качестве первого столбца, а остальные столбцы - это 16 строк правила таблицы. Другими словами, мне нужно преобразовать строки правила таблицы в столбцы результата. Таким образом, в результате я должен иметь 100 строк (все pnames из таблицы продуктов) и 17 столбцов (pname и 16 строк из таблицы правил).
Не могли бы вы помочь мне написать такой запрос? Я попытался использовать операторы case для преобразования строк в столбцы, но в сочетании с результатом таблицы продуктов число строк, которые я получаю, является декартовым продуктом как продукта, так и таблиц правил, чего я не хочу. Я хочу, чтобы количество строк было равно строкам в таблице продуктов, а количество столбцов было равно строкам в таблице правил. Не могли бы вы помочь?
какой сервер базы данных используется? mysql, sql server, oracle? – RRUZ
Я использую сервер sql – Gagan