我有一个fact
和budget
表,budget
表没有每个类别的值
Category Budget
A 100
B 50
C在budget
查询似乎变成了SQL Server 2012上的内部联接。在我当前的位置,我在SQL Server 2005上使用了相同的语法,并且它仍然返回所有记录。
目前无法检查SQL Server 2008。
SELECT distinct Category
FROM FactRide
LEFT OUTER JOIN
Budget ON FactRide.Category = Budget.Category
WHERE
(Budget.BudgetType = 'Ride' OR Budget.BudgetType IS NULL)
我是否错过了SQL Server 2012的更改?
问题是结果不会返回C类。 当我在预算中添加一行与C类和预算值'空时问题是'已解决'。
但我想知道我是否应该要求供应商生成不同的SQL或者观察SQL 2012 Servicepack ....
答案 0 :(得分:-1)
是的,从SQL Server 2012开始,SQL Server连接语法确实发生了变化,这让我意识不到。您可以在https://straightpathsql.com/archives/2012/11/sql-server-join-syntax-its/
找到完整的详细信息