powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Выбрать определённый номер столбца таблицы
7 сообщений из 7, страница 1 из 1
Выбрать определённый номер столбца таблицы
    #39862382
Yurik_Tuturik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте! Подскажите, пожалуйста, как выбрать определённый номер столбца в таблице. В INFORMATION_SCHEMA.COLUMNS в ORIGINAL_POSITION этот номер вроде указан, а как указать его в команде select? Думаю, что это должно быть очень просто, но не могу сообразить как. Наверное, что-то типа select A[4] from A, но такого пока нет в SQL Server
...
Рейтинг: 0 / 0
Выбрать определённый номер столбца таблицы
    #39862390
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yurik_Tuturikкак указать его в команде select?А вот никак. Номер из INFORMATION_SCHEMA.COLUMNS получил? так лучше получи имя, вставь в текст запроса, да выполни через EXEC.
...
Рейтинг: 0 / 0
Выбрать определённый номер столбца таблицы
    #39862395
Yurik_Tuturik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, вроде понял - через динамический запрос в хранимой процедуре. Вроде больше никак. Тему можно закрывать. Извините за беспокойство
...
Рейтинг: 0 / 0
Выбрать определённый номер столбца таблицы
    #39862841
uaggster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yurik_TuturikСпасибо, вроде понял - через динамический запрос в хранимой процедуре. Вроде больше никак. Тему можно закрывать. Извините за беспокойство
Ну почему ж, обязательно, через динамический то?

Ежели, т.с., per anus, то можно и без динамики:

Код: 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.
if OBJECT_ID('tempdb..#t') is not null
	drop table #t
go

Create table #t (co1 int, col2 varchar(10), col3 datetime)
go

Insert into #t
Values
(1, 'test1', CURRENT_TIMESTAMP),
(2, 'test2', DATEADD(day, 1, CURRENT_TIMESTAMP)),
(3, 'test3', DATEADD(day, -1, CURRENT_TIMESTAMP))

Select [value] from 
(
	Select tt.nn.value('(.)[1]', 'nvarchar(max)') [value]
	,ROW_NUMBER() over (order by 1/0) N 
	from 
	(Select * from #t
		for xml path('root'), type
	) t(n)
	cross apply t.n.nodes('/root/*') tt(nn)
) ttt
Where N % 3 = 2


Здесь 3 - общее количество полей в таблице, а 2 - извлекаемое поле.
...
Рейтинг: 0 / 0
Выбрать определённый номер столбца таблицы
    #39862865
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yurik_Tuturik,

вероятнее всего у вас проблема с архитектурой решения,
ибо делать ПО, которое зависит от номера столбца, довольно глупо
...
Рейтинг: 0 / 0
Выбрать определённый номер столбца таблицы
    #39863597
Gerros
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yurik_Tuturik,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
declare @num int = 1

select x = case @num
  when 1 then LoginProvider
  when 2 then ProviderKey
  when 3 then UserId
  else null
end
from AspNetUserLogins
...
Рейтинг: 0 / 0
Выбрать определённый номер столбца таблицы
    #39863872
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yurik_Tuturik,

в реляционной алгебре таблица - это куча (неупорядоченное множество) столбцов (атрибутов). В ней нет порядка столбцов. Поэтому неверно исходить из предпосылки, что сервер хранит на физическом или логическом уровне данные упорядоченно. Порядок столбцов может измениться при определённых действиях.
Наилучшим вариантом будет создание представления таблицы, в которым вы явно пронумеруете столбцы. Например
Код: sql
1.
2.
3.
4.
5.
6.
CREATE VIEW View1
AS
SELECT
Fielad1 AS [1],
Field5 AS [2]
FROM Table1;
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Выбрать определённый номер столбца таблицы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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