"SQL Server in子句中关键字'WHERE'附近的语法不正确"

Raj*_*123 3 sql sql-server sql-server-2008

SELECT 
   [EmpNum], [EmpEmergencyContact], [Relation], [PhType], [Phone] 
FROM 
    (SELECT 
        [EmpNum], [EmpEmergencyContact], [Relation], [PhType], [Phone] 
    FROM [EMERGENCY_CONTACT])
Run Code Online (Sandbox Code Playgroud)

我有一个SELECT语句内部FROM子句的简单查询返回一个错误:

')附近的语法不正确

Ari*_*ion 12

您需要在from语句中添加别名.

所以改变这个:

   FROM [EMERGENCY_CONTACT]
)
Run Code Online (Sandbox Code Playgroud)

对此:

   FROM [EMERGENCY_CONTACT]
) AS tbl
Run Code Online (Sandbox Code Playgroud)

像这样:

SELECT [EmpNum], [EmpEmergencyContact], [Relation], [PhType], [Phone] 
FROM (
    SELECT [EmpNum], [EmpEmergencyContact], [Relation], [PhType], [Phone] 
    FROM [EMERGENCY_CONTACT]
) AS tbl
Run Code Online (Sandbox Code Playgroud)

更安全的是在列上使用这样的别名:

SELECT 
    tbl.[EmpNum], 
    tbl.[EmpEmergencyContact], 
    tbl.[Relation], 
    tbl.[PhType], 
    tbl.[Phone] 
FROM (
    SELECT [EmpNum], [EmpEmergencyContact], [Relation], [PhType], [Phone] 
    FROM [EMERGENCY_CONTACT]
) AS tbl
Run Code Online (Sandbox Code Playgroud)