我有一个场景,我必须在输出中获取一列,两次。
示例查询:
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 演示