在查询中重复使用别名

时间:2018-07-18 10:30:00

标签: sql sql-server

将别名用作另一列。例如,采用以下查询。

SELECT 'Santosh' as fname, 'Jadi' as lname, fname;

我想将别名fname用作第三列。

有可能吗?如果是,如何实现?

5 个答案:

答案 0 :(得分:3)

您可以:

select t.fname, t.lname, t.fname as thirdcolumn
from ( values ('Santosh', 'Jadi') 
     ) t (fname, lname);

对于您的实际表,您可以将其重新表达为:

select t.*, tt.fname as thirdcolumn
from table t cross apply 
     ( values (col) 
     ) tt (fname);

答案 1 :(得分:2)

我建议您使用CTE,它会给您自由的感觉,您可以多次使用它们而无需任何额外的工作。

WITH MyTable AS
(
  SELECT 'Santosh' as fname, 'Jadi' as lname
)
SELECT fname, lname, fname
FROM MyTable 

答案 2 :(得分:1)

是的,下面是可能的示例

SELECT  weekdayname as A,weekdayname as A from
(
SELECT 'Sunday' AS weekdayname UNION ALL
SELECT 'Monday' UNION ALL
SELECT 'Tuesday' UNION ALL
SELECT 'Wednesday' UNION ALL
SELECT 'Thursday' UNION ALL
SELECT 'Friday' UNION ALL
SELECT 'Saturday'

) T

答案 3 :(得分:1)

要访问fname,您需要将查询放入子查询中,如下所示:

SELECT K.fname, K.lname, K.fname as NewFname 
FROM(    
      SELECT 'Santosh' as fname, 'Jadi' as lname
) as K

答案 4 :(得分:1)

在这种情况下,您必须使用subquery

SELECT fname, lname, 
    fname AS col3,
    fname AS col4 -- so on
FROM (SELECT 'Santosh' as fname, 'Jadi' as lname) t

输出

fname   lname   col3    col4
Santosh Jadi    Santosh Santosh