2017-01-24 34 views
2

如果我有SQL查詢:保留列名,當您轉換()在SQL

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

它將返回ProjectHours和HoursQuantity用正確的列名,但將返回EntryDate爲(沒有列名) 。

我該如何解決這個問題或重命名該列,以便將標題顯示在返回給用戶的表格中?

我認爲數據會保留在同一列,但我想它移動到一個新的列。我嘗試別名和其他一些東西,但它沒有奏效。

+1

'convert(varchar(10),project.EntryDate,120)EntryDate' –

+0

'..db.Project as project''別名'應該是簡短的,簡單的和可讀的,而不是沒有用的確切表名。 –

+2

@Prdp在不是確切表名的區分大小寫的系統中。 :) –

回答

8

具有相同名稱給它一個alias

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

你有沒有看到這個'db.Project as project';) –

+0

我只是把它作爲一個例子。這不是我正在使用的實際代碼/別名。我使用dbo.Project作爲p,如果這讓你感覺更好:P –

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 
+1

爲什麼使用AS不好?我認爲這是標準慣例。 –

+0

你看過這篇文章嗎? – SqlZim