Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Select через переменную / 13 сообщений из 13, страница 1 из 1
18.01.2019, 12:13
    #39761389
Максим_78
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select через переменную
Добрый день!
Скажите пожалуйста, возможно ли заселектить таблицу с помощью переменной?
К примеру:

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

Спасибо!
...
Рейтинг: 0 / 0
18.01.2019, 12:15
    #39761392
Yasha123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select через переменную
Код: sql
1.
2.
3.
4.
5.
DECLARE @Cond nvarchar(max)
--
SET	@Cond =	'НАИМЕНОВАНИЕ ПОЛЯ В ТАБЛИЦЕ'	
from	[ТАБЛИЦА]
where	.........


вот так можно.
только это скорее всего не то, что вам надо
...
Рейтинг: 0 / 0
18.01.2019, 12:15
    #39761393
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select через переменную
Максим_78Скажите пожалуйста, возможно ли заселектить таблицу с помощью переменной?См. EXECUTE
...
Рейтинг: 0 / 0
18.01.2019, 12:18
    #39761397
Andy_OLAP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select через переменную
Максим_78Добрый день!
Скажите пожалуйста, возможно ли заселектить таблицу с помощью переменной?
К примеру:

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

Спасибо!
Да, можно. Поскольку у Вас не varchar, а nvarchar - не забывайте делать N''
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
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 )
...
Рейтинг: 0 / 0
18.01.2019, 12:20
    #39761398
Andy_OLAP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select через переменную
Andy_OLAP,

И не забыть сделать присваивание названия таблицы.
Код: sql
1.
SET		@table_name =	N'НАИМЕНОВАНИЕ ТАБЛИЦЫ'
...
Рейтинг: 0 / 0
18.01.2019, 12:24
    #39761401
Максим_78
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select через переменную
Да, конечно EXEC, я совсем забыл про него хотя когда-то пользовал))
Господа товарищи, спасибо за помощь!!!
...
Рейтинг: 0 / 0
18.01.2019, 12:24
    #39761402
Ken@t
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select через переменную
безопаснее
Код: sql
1.
SET @Cond = QUOTENAME('блабалабла')


ибо и так подход не очень .
...
Рейтинг: 0 / 0
18.01.2019, 12:57
    #39761438
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select через переменную
Yasha123
Код: sql
1.
2.
3.
4.
5.
DECLARE @Cond nvarchar(max)
--
SET	@Cond =	'НАИМЕНОВАНИЕ ПОЛЯ В ТАБЛИЦЕ'	
from	[ТАБЛИЦА]
where	.........



вот так можно.
только это скорее всего не то, что вам надоВот так нельзя.
...
Рейтинг: 0 / 0
18.01.2019, 13:04
    #39761450
Yasha123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select через переменную
iapYasha123
Код: sql
1.
2.
3.
4.
5.
DECLARE @Cond nvarchar(max)
--
SET	@Cond =	'НАИМЕНОВАНИЕ ПОЛЯ В ТАБЛИЦЕ'	
from	[ТАБЛИЦА]
where	.........



вот так можно.
только это скорее всего не то, что вам надоВот так нельзя.
действительно, пардон.
имелось в виду
Код: sql
1.
2.
3.
4.
5.
DECLARE @Cond nvarchar(max)
--
select	@Cond =	'НАИМЕНОВАНИЕ ПОЛЯ В ТАБЛИЦЕ'	
from	[ТАБЛИЦА]
where	.........
...
Рейтинг: 0 / 0
18.01.2019, 13:22
    #39761467
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select через переменную
Автор-то хотел всего лишь универсальный запрос всего по всему при любых условиях, известных и неизвестных.
...
Рейтинг: 0 / 0
18.01.2019, 13:38
    #39761479
Максим_78
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select через переменную
Владислав Колосов,

Да, именно так!))
...
Рейтинг: 0 / 0
18.01.2019, 14:56
    #39761523
256k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select через переменную
Yasha123iapпропущено...
Вот так нельзя.
действительно, пардон.
имелось в виду
Код: sql
1.
2.
3.
4.
5.
DECLARE @Cond nvarchar(max)
--
select	@Cond =	'НАИМЕНОВАНИЕ ПОЛЯ В ТАБЛИЦЕ'	
from	[ТАБЛИЦА]
where	............



Совсем другое дело!
зы. исправил немного
...
Рейтинг: 0 / 0
18.01.2019, 16:23
    #39761604
Yasha123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select через переменную
256kYasha123пропущено...

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



Совсем другое дело!
зы. исправил немного
зато г-носмысл остался.
"заселектили таблицу в переменную".
и НАИМЕНОВАНИЕ ПОЛЯ В ТАБЛИЦЕ все там же
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Select через переменную / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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