Sql server SQL Server 2016虚拟表-语法“AS”不正确
假设表级别包含列level\u id和level\u name 我的SQL Server 2016查询中有一个虚拟表: 这不是一个真正的查询-我已经尽可能地简化了它以说明错误Sql server SQL Server 2016虚拟表-语法“AS”不正确,sql-server,Sql Server,假设表级别包含列level\u id和level\u name 我的SQL Server 2016查询中有一个虚拟表: 这不是一个真正的查询-我已经尽可能地简化了它以说明错误 SELECT LEVEL .level_id, LEVEL .level_name FROM LEVEL, ((SELECT LEVEL_ID AS lev_sum_level_id FROM LEVEL GROUP BY
SELECT
LEVEL .level_id,
LEVEL .level_name
FROM
LEVEL,
((SELECT
LEVEL_ID AS lev_sum_level_id
FROM
LEVEL
GROUP BY
level_id) AS lev_sum
JOIN
(SELECT
LEVEL_ID AS lev_det_level_id
FROM
LEVEL
GROUP BY
level_id) AS lev_det ON (lev_sum_level_id = lev_det_level_id)
) AS totals
语法错误作为总计出现在行中
Msg 156,第15级,状态1,第35行
关键字“AS”附近的语法不正确
为什么SQL Server不允许这种语法?如果我简化虚拟表查询,看起来很好。Postgres允许它保持原样我认为您可以尝试添加一个select,以便完成语句的语法 请试一试
SELECT
T1.MiscID,
T2.lev_sum_level_id
FROM
Miscs AS T1,
(
SELECT * FROM
(
SELECT
MiscID AS lev_sum_level_id
FROM
Miscs
GROUP BY
MiscID
) AS lev_sum
JOIN
(
SELECT
MiscID AS lev_det_level_id
FROM
Miscs
GROUP BY
MiscID
) AS lev_det
ON( lev_sum_level_id = lev_det_level_id )
) AS T2
您在没有AS别名的情况下尝试过吗?T-sql和postgresql是不可互换的,而且您的语法非常时髦。您真的应该在SQLServer中使用ANSI-95 SQL语法。进一步阅读:查询看起来无效。看起来查询应该添加一个select。因为您只是将两个表连接在一起,但它没有提供应该从datasethanks中提取的内容。似乎Postgres推断出了这一点,而MSSQL则没有