Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Select через переменную  [new]
Максим_78
Member

Откуда:
Сообщений: 28
Добрый день!
Скажите пожалуйста, возможно ли заселектить таблицу с помощью переменной?
К примеру:

DECLARE @Cond nvarchar(max)
--
SET @Cond = 'НАИМЕНОВАНИЕ ПОЛЯ В ТАБЛИЦЕ'
select @Cond
from [ТАБЛИЦА]
where .........

Спасибо!
18 янв 19, 12:13    [21788628]     Ответить | Цитировать Сообщить модератору
 Re: Select через переменную  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
DECLARE @Cond nvarchar(max)
--
SET	@Cond =	'НАИМЕНОВАНИЕ ПОЛЯ В ТАБЛИЦЕ'	
from	[ТАБЛИЦА]
where	.........

вот так можно.
только это скорее всего не то, что вам надо
18 янв 19, 12:15    [21788632]     Ответить | Цитировать Сообщить модератору
 Re: Select через переменную  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31326
Максим_78
Скажите пожалуйста, возможно ли заселектить таблицу с помощью переменной?
См. EXECUTE
18 янв 19, 12:15    [21788633]     Ответить | Цитировать Сообщить модератору
 Re: Select через переменную  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 3151
Максим_78
Добрый день!
Скажите пожалуйста, возможно ли заселектить таблицу с помощью переменной?
К примеру:

DECLARE @Cond nvarchar(max)
--
SET @Cond = 'НАИМЕНОВАНИЕ ПОЛЯ В ТАБЛИЦЕ'
select @Cond
from [ТАБЛИЦА]
where .........

Спасибо!

Да, можно. Поскольку у Вас не varchar, а nvarchar - не забывайте делать N''
DECLARE @Cond nvarchar(max)
DECLARE @command_string nvarchar(max)
DECLARE @table_name nvarchar(max)
--
SET		@Cond =	N'НАИМЕНОВАНИЕ ПОЛЯ В ТАБЛИЦЕ'				

SET		@command_string =	convert(nvarchar(max),N'select ')+convert(nvarchar(max),@Cond)+convert(nvarchar(max),N' from [')+
convert(nvarchar(max),@table_name)+convert(nvarchar(max),N'] where ...')

exec(@command_string )
18 янв 19, 12:18    [21788637]     Ответить | Цитировать Сообщить модератору
 Re: Select через переменную  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 3151
Andy_OLAP,

И не забыть сделать присваивание названия таблицы.
SET		@table_name =	N'НАИМЕНОВАНИЕ ТАБЛИЦЫ'
18 янв 19, 12:20    [21788638]     Ответить | Цитировать Сообщить модератору
 Re: Select через переменную  [new]
Максим_78
Member

Откуда:
Сообщений: 28
Да, конечно EXEC, я совсем забыл про него хотя когда-то пользовал))
Господа товарищи, спасибо за помощь!!!
18 янв 19, 12:24    [21788643]     Ответить | Цитировать Сообщить модератору
 Re: Select через переменную  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3264
безопаснее
SET @Cond = QUOTENAME('блабалабла')

ибо и так подход не очень .
18 янв 19, 12:24    [21788644]     Ответить | Цитировать Сообщить модератору
 Re: Select через переменную  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Yasha123
DECLARE @Cond nvarchar(max)
--
SET	@Cond =	'НАИМЕНОВАНИЕ ПОЛЯ В ТАБЛИЦЕ'	
from	[ТАБЛИЦА]
where	.........


вот так можно.
только это скорее всего не то, что вам надо
Вот так нельзя.
18 янв 19, 12:57    [21788693]     Ответить | Цитировать Сообщить модератору
 Re: Select через переменную  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
iap
Yasha123
DECLARE @Cond nvarchar(max)
--
SET	@Cond =	'НАИМЕНОВАНИЕ ПОЛЯ В ТАБЛИЦЕ'	
from	[ТАБЛИЦА]
where	.........


вот так можно.
только это скорее всего не то, что вам надо
Вот так нельзя.

действительно, пардон.
имелось в виду
DECLARE @Cond nvarchar(max)
--
select	@Cond =	'НАИМЕНОВАНИЕ ПОЛЯ В ТАБЛИЦЕ'	
from	[ТАБЛИЦА]
where	.........
18 янв 19, 13:04    [21788707]     Ответить | Цитировать Сообщить модератору
 Re: Select через переменную  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7641
Автор-то хотел всего лишь универсальный запрос всего по всему при любых условиях, известных и неизвестных.
18 янв 19, 13:22    [21788729]     Ответить | Цитировать Сообщить модератору
 Re: Select через переменную  [new]
Максим_78
Member

Откуда:
Сообщений: 28
Владислав Колосов,

Да, именно так!))
18 янв 19, 13:38    [21788741]     Ответить | Цитировать Сообщить модератору
 Re: Select через переменную  [new]
256k
Member

Откуда: с.Торчилово, Псковская обл.
Сообщений: 437
Yasha123
iap
пропущено...
Вот так нельзя.

действительно, пардон.
имелось в виду
DECLARE @Cond nvarchar(max)
--
select	@Cond =	'НАИМЕНОВАНИЕ ПОЛЯ В ТАБЛИЦЕ'	
from	[ТАБЛИЦА]
where	............


Совсем другое дело!
зы. исправил немного
18 янв 19, 14:56    [21788801]     Ответить | Цитировать Сообщить модератору
 Re: Select через переменную  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
256k
Yasha123
пропущено...

действительно, пардон.
имелось в виду
DECLARE @Cond nvarchar(max)
--
select	@Cond =	'НАИМЕНОВАНИЕ ПОЛЯ В ТАБЛИЦЕ'	
from	[ТАБЛИЦА]
where	............


Совсем другое дело!
зы. исправил немного

зато г-носмысл остался.
"заселектили таблицу в переменную".
и НАИМЕНОВАНИЕ ПОЛЯ В ТАБЛИЦЕ все там же
18 янв 19, 16:23    [21788896]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить