我需要一个select语句输出作为列的别名
是否可能
实施例
select columnname as (select value from tablename) from tablename
输出
值
1
2
3
答案 0 :(得分:1)
不,你不能,看到这个:
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。
编辑以显示动态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)
答案 1 :(得分:0)
试试这个
从表名
中选择(从表名中选择值)作为列名输出应类似于以下
COLUMN_NAME - 1 - 2 - 3
答案 2 :(得分:0)
我认为你必须在tsql中退出de AS单词,我的意思是:
select column name (select value from tablename) from tablename