Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Задать имена столбцов из другой таблицы / 5 сообщений из 5, страница 1 из 1
28.07.2020, 13:31
    #39984616
AcidByte
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задать имена столбцов из другой таблицы
Добрый день, уважаемые гуру
Возник вопрос как сделать выборку, чтобы можно было название столбцов подставить из другой выборки.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
create table Marks 
(
	 RecordID int IDENTITY,
	 C1 int, 
	 C2 int ,
	 C3 int, 
	 C4 int,
	 C5 int,
	 C6 int

)

go

declare @c1 int, @c2 int, @c3 int, @c4 int, @c5 int, @c6 int, @row int

set @row = 0


while @row < 20
begin	
	set @row = @row + 1

	set @c1 = round(rand()*10, 0) 
	set @c2 = round(rand()*10, 0) 
	set @c3 = round(rand()*10, 0) 
	set @c4 = round(rand()*10, 0) 
	set @c5 = round(rand()*10, 0) 
	set @c6 = round(rand()*10, 0) 

	insert into Marks 
		values	(@c1, @c2, @c3, @c4, @c5, @c6)
end

go
create table Column_mark 
( id int IDENTITY, 
	name varchar(20)
)

go

insert into Column_mark
values ('К-1'), ('К-2'), ('К-3'), ('К-4'), ('К-5'), ('К-6')





Есть 2 таблицы Marks - где хранятся результаты оценок и column_marks - где хранятся названия столбцов. Как мне сделать выборку, чтобы вывести значения из marks с названием из значений column_marks. Чтобы получилось вот так:
К-1К-2К-3К-4К-5К-680844386270721394687216817679579079227681006762954566656906282345055262101016588171974861996742851078710628502449358358782780
...
Рейтинг: 0 / 0
28.07.2020, 16:33
    #39984698
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задать имена столбцов из другой таблицы
AcidByte,

непонятно зачем, средства переименования столбцов обычно имеют объекты клиентского приложения.
...
Рейтинг: 0 / 0
28.07.2020, 18:28
    #39984729
godsql
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задать имена столбцов из другой таблицы
динамическим запросом создайте временную таблицу с нужным количеством колонок и именами столбцов из Column_mark, а потом обычным select-ом запихните туда все данные из таблицы Marks
...
Рейтинг: 0 / 0
28.07.2020, 19:50
    #39984741
Андрей Юниор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задать имена столбцов из другой таблицы
...
Рейтинг: 0 / 0
30.07.2020, 04:57
    #39985190
AcidByte
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задать имена столбцов из другой таблицы
Pivot с динамикой зашло. Спасибо. Может кому пригодиться:

авторdeclare @k1 varchar(20), @k2 varchar(20), @k3 varchar(20), @k4 varchar(20), @k5 varchar(20), @k6 varchar(20)



select @k1 = [1], @k2 = [2], @k3 = [3], @k4 = [4], @k5 = [5], @k6 = [6] from column_mark
pivot ( max(name) for Id in ([1], [2], [3], [4], [5], [6]))p


declare @cmd varchar(150) = 'select c1 as ''' + @k1 + ''', c2 as ''' + @k2 + ''', c3 as ''' + @k3 + ''', c4 as ''' + @k4 +
''', c5 as ''' + @k5 + ''', c6 as ''' + @k6 + ''' from Marks '


exec (@cmd);
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Задать имена столбцов из другой таблицы / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]