gre*_*egn 7 sql-server syntax ssms t-sql view
我有一个数据仓库,里面有很多用 SSMS 视图设计器内置的视图。查看语法,FROM我无法理解这些子句,因为ON语句没有紧跟在相关的JOIN <table>. 通常RIGHT连接查询的主表并在FROM. 所以我有这样的情况:
SELECT *
FROM tableC
LEFT JOIN TableB
RIGHT JOIN TableA
ON TableA.ID = TableB.ID
ON TableB.TypeID = TableC.TypeID
WHERE ....
Run Code Online (Sandbox Code Playgroud)
将各种JOINandON子句的顺序更改为我手写的内容会以意想不到的方式改变结果。似乎大多数 SQL 美化者都对这种丑陋的语法感到窒息,而 SSMS 则不然。我一直无法找到押韵、原因或文档来帮助解开正在发生的事情。
请提供任何建议或链接以找出和修复视图设计器查询?
Pau*_*ite 11
这只是删除了可选括号的标准 SQL 连接语法:
SELECT *
FROM tableC
LEFT JOIN
(
TableB
RIGHT JOIN TableA
ON TableA.ID = TableB.ID
)
ON TableB.TypeID = TableC.TypeID
Run Code Online (Sandbox Code Playgroud)
如果您不喜欢 SSMS 视图设计器生成的语法(它有缺陷并且很少更新),只需使用常规 T-SQL 手动编写视图。
有些人将这种语法风格称为“嵌套连接语法”。示例博客文章。
| 归档时间: |
|
| 查看次数: |
377 次 |
| 最近记录: |