在SQL中转换()时保留列名

时间:2017-01-24 15:07:10

标签: sql sql-server sql-convert

如果我有SQL查询:

select
    project.Employee,
    project.HoursQuantity,
    convert(varchar(10), project.EntryDate, 120)
from db.Project as project 

它将使用正确的列名返回ProjectHours和HoursQuantity,但会将EntryDate返回为(无列名)。

如何解决此问题或重命名列,以便标题会显示在返回给用户的表格上?

我认为数据会保留在同一列中,但我想它会转移到新列。我尝试了别名和其他一些东西,但它还没有工作。

2 个答案:

答案 0 :(得分:8)

给它一个名称相同的alias

select
    project.Employee,
    project.HoursQuantity,
    convert(varchar(10), project.EntryDate, 120) as EntryDate
from db.Project as project 

答案 1 :(得分:0)

我首选的列别名方法是alias = expression

Bad Habits to Kick : Using AS instead of = for column aliases - Aaron Bertrand - 2012-01-23

select
    project.Employee,
    project.HoursQuantity,
    EntryDate = convert(varchar(10), project.EntryDate, 120)
from db.Project as project 

有效列别名方法:

select 1 as x;    -- #1
select x = 1;     -- #2
select 'x' = 1 ;  -- #3
select [x] = 1 ;  -- #4
select 1 x;       -- #5
select 1 as 'x';  -- #6
select 1 'x';     -- #7
select 1 as [x];  -- #8
select 1 [x];     -- #9