与 SQL 服务器 SELECT 查询中的两次相同的列,具有 Group BY, ORDER BY 子句



我有一个场景,我必须在输出中获取一列,两次。

示例查询:

SELECT 
EMP_JOIN_MONTH AS EMP_JOIN_MONTH_TEST, 
EMP_JOIN_MONTH AS EMP_JOIN_MONTH_TEST 
FROM
EMPLOYEE 
WHERE 
EMP_ID IN (12345) 
GROUP BY 
EMP_JOIN_MONTH, EMP_JOIN_MONTH
ORDER BY 
EMP_JOIN_MONTH_TEST ASC 
OFFSET 0 ROWS FETCH NEXT 1000 ROWS ONLY;

在 MySQL 中,我得到的列是预期的两倍。但不是在Microsoft SQL Server中。

帮助将不胜感激。

您需要对所有单独的列使用不同的别名:

create table EMPLOYEE( EMP_ID int, EMP_JOIN_MONTH varchar(20));
insert into EMPLOYEE values(12345,'March');
insert into EMPLOYEE values(12345,'March');

SELECT 
EMP_JOIN_MONTH AS EMP_JOIN_MONTH_TEST1, 
EMP_JOIN_MONTH AS EMP_JOIN_MONTH_TEST2 
FROM
EMPLOYEE 
WHERE 
EMP_ID IN (12345) 
GROUP BY 
EMP_JOIN_MONTH
ORDER BY 
EMP_JOIN_MONTH_TEST1 ASC 
OFFSET 0 ROWS FETCH NEXT 1000 ROWS ONLY;
EMP_JOIN_MONTH_TEST1    EMP_JOIN_MONTH_TEST2
--------------------    --------------------
March                  March

Rextester 演示

最新更新