SQL Выберите строку и сохраните в переменной SQL - PullRequest
17 голосов
/ 23 сентября 2010

Итак, я пишу этот Stored Proc, и я действительно отстой в SQL.

Мой вопрос к вам, ребята:

Можно ли выделить всю строку и сохранить ее в переменной?

Я знаю, что могу сделать что-то вроде:

declare @someInteger int
select @someInteger = (select someintfield from sometable where somecondition)

Но можно ли выбрать всю строку из sometable и сохранить ее в переменной?

Ответы [ 3 ]

29 голосов
/ 23 сентября 2010

Вы можете выбрать поля для нескольких переменных:

DECLARE @A int, @B int

SELECT
  @A = Col1,
  @B = Col2
FROM SomeTable
WHERE ...

Другой, потенциально лучший, подход заключается в использовании табличной переменной:

DECLARE @T TABLE (
  A int,
  B int
)
INSERT INTO @T ( A, B )
SELECT
  Col1,
  Col2
FROM SomeTable
WHERE ...

Затем вы можете выбрать переменную таблицы как обычную таблицу.

6 голосов
/ 23 сентября 2010

Вы можете создать переменную таблицы, соответствующую вашей схеме таблицы, и сохранить в ней одну строку:

declare @myrow table(field0 int,field1 varchar(255))
insert into @myrow
select field0,field1 from mytable where field0=1
0 голосов
/ 11 сентября 2017

См. / Через:

Оператор MSSQL Select с целочисленным столбцом целых чисел ... не из таблицы

SELECT ROW_NUMBER() OVER( ORDER BY Column1, Column2 ) AS 'rownumber',*
FROM YourTable
...