我们可以使用Select查询输出作为列别名

时间:2011-04-13 12:44:36

标签: tsql

我需要一个select语句输出作为列的别名

是否可能

实施例

select columnname as (select value from tablename)  from tablename

输出

1

2

3

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