powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Подстановка в SELECT имени столбца из переменной
4 сообщений из 4, страница 1 из 1
Подстановка в SELECT имени столбца из переменной
    #32064385
serg_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MSSQL2000
Исходные данные:
имеем таблицу MYTAB, количество столбцов 1..100
из какого столбца делать выборку определяется динамически в зависимости от условий

Попытка решения:
DECLARE @Vint1 int, @na char(5),@N tinyint
------------------------------------------
Допустим индекс столбца, определенный в другой процедуре равен 6
------------------------------------------
SET @N = 6
------------------------------------------
Заносим в переменную @Vint1 id таблицы MYTAB
-----------------------------------------------
Select @Vint1=id FROM sysobjects WHERE name='MYTAB'
-----------------------------------------------
Используем встроенную функцию
COL_NAME(indexTab,indexColumn) для определения имени столбца из которого нужно сделать выборку
присваиваем результат переменной @na
-----------------------------------------------
SELECT TOP 1 @na=COL_NAME(@Vint1,@N)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'MYTAB'

-----------------------------------------------
пытаюсь получить значение из столбца, имя которого находится в переменной @na и дополнительного условия
------------------------------------------------
SELECT @na
FROM MYTAB
WHERE (MYTAB.Summa = 54)

------------------------------------------------
Результат- возвращает имя столбца, а мне нужно значение в этом столбце!!!

Подскажите как решить данную задачу, какие функции можно использовать, может синтаксис неправильный
...
Рейтинг: 0 / 0
Подстановка в SELECT имени столбца из переменной
    #32064388
Фотография MiCe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
используй динамичиский запрос....
Код: plaintext
EXEC('SELECT '+@na+' FROM MYTAB m WHERE (m.Summa = 54)' )
...
Рейтинг: 0 / 0
Подстановка в SELECT имени столбца из переменной
    #32064389
Фотография MiCe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да и вместо declare @na char(5)
пользуй @na sysname или хотябы varchar....
...
Рейтинг: 0 / 0
Подстановка в SELECT имени столбца из переменной
    #32064393
serg_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, все заработало.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Подстановка в SELECT имени столбца из переменной
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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