2014-09-03 72 views
0

我有這樣一個查詢:選擇查詢使用列別名

Select table1.Name AS aliasname1, Count(aliasname1) as aliasname2 from table1. 

,但我不知道這是否查詢將在SQL成功執行,因爲我已經在相同的SELECT語句中使用別名。我需要一個解決方案爲在SQL中做同樣的事情。 我想解決方案

aliasname1 aliasname2 

Name1   4 
Name2   4 
Name3   4 
Name4   4 
+0

你試過了嗎?不,它不會那樣工作。您不能在同一個查詢中引用別名。 – 2014-09-03 13:39:29

+0

**但我不確定此查詢是否會成功執行**爲什麼您不確定? – 2014-09-03 13:40:18

+0

雅我已經嘗試過,但它給了我錯誤「無效的列名aliasname1」在sql.but我需要一個替代解決方案執行相同的查詢。 – vivek 2014-09-03 13:43:15

回答

2

你不能在這樣的SELECT語句引用一個別名。您正在創建並試圖同時調用一個別名,因此編譯器不知道當您在同一個select語句中引用它時aliasname1是什麼。因此,爲了解決這個問題,你必須編寫查詢方式如下:

select 
    table1.Name AS aliasname1, 
    Count(table1.Name) as aliasname2 
from table1 

或者,如果你想引用一個別名,你需要使用子查詢:

select aliasname1, 
    count(aliasname1) as aliasname2 
from 
(
    select table1.Name AS aliasname1 
    from table1 
) as d