简体   繁体   中英

Same column as twice in SQL server SELECT query with Group BY, ORDER BY clauses

I have a scenario where I have to get one column in output, two times.

Example query:

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;

In MySQL, I'm getting the column twice as expected. But not in Microsoft SQL Server.

Help would be appreciated.

You need to use different the aliases for all individual columns :

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 Demo

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM