Delgus
@Delgus

Возможно ли подставить имена столбцов из таблицы?

Есть таблица вида
id
number
prop
value
1qwerty54snils123123
2qwerty54inn456456
3qwerty54cityyaroslavl
4qwerty12snils123456
5qwerty12ogrn456789
6qwerty12citymoscow
7qwerty8inn234567
8qwerty8
ogrnip567567
9qwerty8cityvladimir


Хотелось бы минимальным количеством запросов а лучше одним получать данные в виде

numbersnilsinnogrnogrnipcity
qwerty54123123456456nullnull Yaroslavl
qwerty12123456null456789null moscow
qwerty8234567nullnull567567 vladimir

А для этого как минимум надо динамически подставлять названия столбцов.
Возможно ли это?
Смотрю в сторону подготавливаемых запросов и процедур, но не могу найти понятного примера...Укажите хотя бы в какую сторону копать)
  • Вопрос задан
  • 156 просмотров
Решения вопроса 2
tsklab
@tsklab
Здесь отвечаю на вопросы.
В любой СУБД есть системные таблицы, в которых хранятся наименования объектов, и названия полей в том числе.
SHOW FIELDS FROM table_name.
The INFORMATION_SCHEMA COLUMNS Table.
Горизонтальные данные: MySQL pivot row into dynamic number of columns.
Ответ написан
Комментировать
Planet_93
@Planet_93
Можете сделать это так:

SELECT
T.number,
MAX (SNILS.[value]) AS snils,
MAX (INN.[value]) AS inn,
MAX (ORGN.[value]) AS orgn,
MAX (C.[value]) AS CITY

FROM
dbo.TestTable AS T
LEFT JOIN dbo.TestTable As SNILS
ON T.id= SNILS.id and T.prop='snils'
LEFT JOIN dbo.TestTable AS INN
ON T.id= INN.id and T.prop='inn'
LEFT JOIN dbo.TestTable AS ORGN
ON T.id= ORGN.id and T.prop='orgn'
LEFT JOIN dbo.TestTable AS C
ON T.id= C.id and T.prop='city'
GROUP BY T.number


Результат:
5bfe6c1921c7a170334528.jpeg
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@dimoff66
Кратко о себе: Я есть
select number, MAX(snils) as snils, MAX(inn) as inn from tableName group by number
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы