在查询中重用别名
Reuse of alias in a query
使用别名作为另一列。例如,采用以下查询。
SELECT 'Santosh' as fname, 'Jadi' as lname, fname;
我想重新使用别名 fname
作为第三列。
可能吗?如果是,我该如何实现?
你可以这样做:
select t.fname, t.lname, t.fname as thirdcolumn
from ( values ('Santosh', 'Jadi')
) t (fname, lname);
对于您的实际 table,您可以将其重新表示为:
select t.*, tt.fname as thirdcolumn
from table t cross apply
( values (col)
) tt (fname);
是的,下面是可能的示例
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
为了访问 fname
,您需要将查询放在子查询中,如下所示:
SELECT K.fname, K.lname, K.fname as NewFname
FROM(
SELECT 'Santosh' as fname, 'Jadi' as lname
) as K
在这种情况下你必须使用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
我建议你使用 CTE,它可以让你自由发挥,你可以多次使用它们而无需任何额外的工作。
WITH MyTable AS
(
SELECT 'Santosh' as fname, 'Jadi' as lname
)
SELECT fname, lname, fname
FROM MyTable
使用别名作为另一列。例如,采用以下查询。
SELECT 'Santosh' as fname, 'Jadi' as lname, fname;
我想重新使用别名 fname
作为第三列。
可能吗?如果是,我该如何实现?
你可以这样做:
select t.fname, t.lname, t.fname as thirdcolumn
from ( values ('Santosh', 'Jadi')
) t (fname, lname);
对于您的实际 table,您可以将其重新表示为:
select t.*, tt.fname as thirdcolumn
from table t cross apply
( values (col)
) tt (fname);
是的,下面是可能的示例
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
为了访问 fname
,您需要将查询放在子查询中,如下所示:
SELECT K.fname, K.lname, K.fname as NewFname
FROM(
SELECT 'Santosh' as fname, 'Jadi' as lname
) as K
在这种情况下你必须使用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
我建议你使用 CTE,它可以让你自由发挥,你可以多次使用它们而无需任何额外的工作。
WITH MyTable AS
(
SELECT 'Santosh' as fname, 'Jadi' as lname
)
SELECT fname, lname, fname
FROM MyTable