Вы не можете использовать возвращаемое значение из подзапроса для псевдонима, нет никакого способа, чтобы сделать эту работу.
Ваш единственный вариант - динамически строить sql и использовать sp_executesql
, но это обычно указывает на то, что что-то еще пошло не так!
Start, получая значение, которое вы хотите, пару точек
- убедиться, что вы получите только 1 результат, либо с помощью
TOP 1
или соответствующих условий фильтра
несколько условий разделяются AND
или OR
, а не запятой
declare @alias NVARCHAR(100) -- whatever is appropriate
SELECT TOP 1 @alias = value2 FROM Table2
WHERE someField = 'some value'
Т купите sql динамически и выполните его.
DECLARE @sql NVARCHAR(100) = 'SELECT Column1 AS ' + @alias + ' FROM Table1'
EXEC sp_executesql @sql
Вы можете увидеть это в действии здесь: http://sqlfiddle.com/#!3/71f8d6/3
Но, подчеркиваю, это плохо решение.
Вопрос в том, что вы пытаетесь сделать? Добавьте структуру таблицы, данные примера и ожидаемый результат. –
Просто пояснить - пытаетесь ли вы использовать подзапрос (из 'Table2.Value2') для создания псевдонима для' Column1' в 'Table1'? – Jamiec
Если вам нужно имя переменной столбца, вам нужен динамический sql – lad2025