Выбрать и назначить переменную в одном выражении?

Я хотел бы отобразить результаты запроса, и я хотел бы одновременно зафиксировать значение столбца. FROM и WHERE одинаковы в обоих запросах. Могу ли я сделать как в одном запросе, так и проще или лучше просто выполнить запрос дважды, как это?

 DECLARE @fooId INT SET @fooId = (SELECT FooId FROM Bar WHERE SnuhId = 5) SELECT * FROM Bar WHERE SnuhId = 5 

К сожалению, это нужно сделать в двух операциях.

Контрольная работа:

 DECLARE @VAR DATETIME SELECT @VAR=GETDATE(), GETDATE() 

Возвращает сообщение об ошибке 141.

Вот еще один пост по этому вопросу.

Если вы попытаетесь сделать это в одном запросе, вы получите сообщение об ошибке. Msg – A SELECT statement that assigns a value to a variable must not be combined with data-retrieval operations.

Чтобы этого избежать, возможности

1) Убедитесь, что все столбцы назначены локальной переменной. бывший

 DECLARE @fooId INT DECLARE @barId INT SELECT @fooId = FooId, @barId = BarId FROM Bar WHERE SnuhId = 5 

2) просто удалите '*' из оператора SELECT

 SELECT @fooId = FooId, BarId FROM Bar WHERE SnuhId = 5 //remove BarId column from this query 

3) Если вам действительно нужно сделать то и другое, то есть присвоить значение локальным переменным и вернуть столбцы в качестве результирующего набора, вы должны сделать это за 2 шага, а не объединять их в одну инструкцию SELECT.

Для сокращения одной строки вы можете сделать следующее:

 DECLARE @fooI INT SET @fooId = (SELECT FooId FROM Bar WHERE SnuhId = 5) SELECT @fooId as [FooId] 

Это уменьшит ненужную репликацию вашего запроса.

Надеюсь, это поможет.

Interesting Posts

Группировать с помощью левого внешнего соединения, исключать нули

Как получить столбец с наименьшими значениями среди них

Microsoft Master Data Services – Когда использовать?

Форматирование дат с помощью сервера отчетов SQL

VB.Net LINQ эквивалент SQL

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

Тестирование пробелов в SQL Server

Заменить хранимую процедуру, если выполнено условие

Изменение типа данных столбца в SQL Server

скопируйте таблицу в новую таблицу и добавьте новый столбец на SQL Server 2008

SQL Query для удаления гиперссылок из столбца

Как написать запрос предложения IN, чтобы заменить значение null для параметра значения

Мой динамический запрос работает, когда присутствуют как родительские, так и дочерние данные sku, но не работает, когда ребенок отсутствует, но присутствует родительский sku

Как отделить строковое значение и создать temp для хранения отдельной строки в таблице temp

java: использование метода executeQuery (string) не поддерживается?

Давайте будем гением компьютера.