Есть ли способ установить несколько значений в одной переменной в SQL Server 2008? - PullRequest
0 голосов
/ 31 августа 2018

Я новичок в кодировании.

Вот что я сделал:

DECALRE @v VARCHAR(100)

SET @v = (SELECT TOP 100 NAMES FROM TestTable WITH(NOLOCK))

SELECT @v AS SampleData

Но он вернул ошибку:

Подзапрос вернул более 1 значения. Это недопустимо, если подзапрос следует =,! =, <, <=,>,> = Или когда подзапрос используется в качестве выражения.

Есть ли способ установить несколько значений в одной переменной в SQL Server 2008?

Заранее спасибо.

1 Ответ

0 голосов
/ 31 августа 2018

Существует один тип переменной , предназначенный для хранения нескольких значений. Это называется табличной переменной:

declare @v table (Name varchar(100) not null)

insert into @v(Name )
select top 100 name from TestTable /* no ORDER BY means this is ill-defined */

Вы можете вставить / обновить / удалить в эту переменную таблицы и запросить ее через select s точно так же, как и в любой другой таблице.

Обратите внимание, что похоже, что вы разбиваете вещи на «процедурные» шаги - сначала я получу первые 100 имен, затем я сделаю X, затем я сделаю Y. В SQL вы должны постарайтесь поместить как можно больше в отдельные запросы и оставьте это для оптимизатора , чтобы определить, в каком порядке следует выполнять действия, какие подрезультаты должны быть сохранены и т. д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...