TCS54321 Ответов: 1

Как сравнить имена столбцов одной таблицы со значениями строк другой таблицы.


мне нужно сравнить имя столбцов таблицы-1 со значениями строк таблицы-2.

например:-

Таблица-1 имеет 3 столбца типа :-

col-1 | col-2 | col-3

а Таблица-2 имеет один столбец с 3 строками:-

седло
----
Кол-1
кол-2
кол-3

теперь мне нужно сравнить имена столбцов таблицы-1 с именами строк таблицы-2. пожалуйста, кто-нибудь мне поможет?

Что я уже пробовал:

поиск решения в google, но не получить никакого решения прямо сейчас.

1 Ответов

Рейтинг:
2

CHill60

Техника, которая вам нужна, такова оператор UNPIVOT[^]

Если вы сначала пересечете свои столы

select *
	from table2
	cross join table1
Вы получите
col	col-1	col-2	col-3
col-1	1	2	3
col-2	1	2	3
col-3	1	2	3
Как вы можете видеть - значения, которые вы хотите, находятся сверху, но вы хотите, чтобы они были в строках. Так..
select columnname, colvalue from
(select *
	from table2
	cross join table1
) src
unpivot (colvalue for columnname in ([col-1],[col-2],[col-3])) AS pvt
дать вам
columnname	colvalue
col-1		1
col-1		1
col-1		1
col-2		2
col-2		2
col-2		2
col-3		3
col-3		3
col-3		3
Ближе к тому, что вы хотите, но вам нужно будет использовать DISTINCT, чтобы получить именно то, что вам нужно. Я оставлю это как упражнение для вас