нет, вы не можете, посмотрите это:
declare @a table (rowvalue varchar(20))
insert @a values ('aaa')
insert @a values ('bbb')
insert @a values ('ccc')
insert @a values ('ddd')
declare @x table (id int,rowvalue varchar(20))
insert @x values (1, 'wowwee')
insert @x values (2, 'noooo!')
select a.rowvalue as (select rowvalue from @x where id=1)
from @a a
ВЫХОД:
Msg 102, Level 15, State 1, Line 11
Incorrect syntax near '('.
Msg 156, Level 15, State 1, Line 12
Incorrect syntax near the keyword 'from'.
вам придется использовать динамический sql для этого.1009 * РЕДАКТИРОВАТЬ , чтобы показать динамический sql:
declare @SQL varchar(500)
,@ColumnName varchar(20)
create table #a (rowvalue varchar(20))
insert #a values ('aaa')
insert #a values ('bbb')
insert #a values ('ccc')
insert #a values ('ddd')
declare @x table (id int,rowvalue varchar(20))
insert @x values (1, 'wowwee')
insert @x values (2, 'noooo!')
SELECT @ColumnName=rowvalue FROM @x where id=1
set @SQL='select a.rowvalue as '+@ColumnName+' from #a a'
exec(@SQL)
ВЫХОД:
wowwee
--------------------
aaa
bbb
ccc
ddd
(4 row(s) affected)