SQL Server 2012,LEFT JOIN变为INNER JOIN

时间:2012-11-20 10:00:45

标签: sql sql-server left-join sql-server-2012

我有一个factbudget表,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 ....

1 个答案:

答案 0 :(得分:-1)

是的,从SQL Server 2012开始,SQL Server连接语法确实发生了变化,这让我意识不到。您可以在https://straightpathsql.com/archives/2012/11/sql-server-join-syntax-its/

找到完整的详细信息