尝试使用表别名选择null作为columnName

mac*_*cha 3 sql t-sql sql-server

我有一个问题,我正在研究表别名,并遇到一个奇怪的问题.当我不使用表别名时,我可以使用null作为列名,但如果我使用表别名,我会遇到问题.

works!

select top 10 eid, null as emp_no from employee 

does not work!!

select top 10 e.eid, null as e.emp_no from employee e
Run Code Online (Sandbox Code Playgroud)

有出路吗?当我加入另一张桌子时,我遇到了一个问题.

Trying to make it work !

select top 10 e.eid, null as e.emp_no, ed.desgination from employee e 
inner join employee_designations ed on e.eid=ed.eid


Error 

Msg 102, Level 15, State 1, Line 1
Incorrect syntax near '.'.
Run Code Online (Sandbox Code Playgroud)

pet*_*ete 9

尝试:

select top 10 e.eid, null as emp_no from employee e
Run Code Online (Sandbox Code Playgroud)

你可以使用别名NULL,但是如果你声称它来自表别名,那么SQL将会产生混乱e.

更新:

NULL在联接中使用,请将其转换为子查询:

SELECT  e.eid
        , e.emp_no
FROM    (
            SELECT  TOP 10 eid
                    , NULL AS emp_no
            FROM    employee
        ) AS e
Run Code Online (Sandbox Code Playgroud)

将您的子查询别名为e,现在SQL将乐意接受NULLe.emp_no.