0

我在 Sql Server 2008 上有两个表。 ownership有 3 个字段和case另外 3 个字段,我需要在 ID 字段(bigint)上加入这两个字段。

出于测试目的,我只使用每个表中的一个字段。该字段是 bigint 并且具有从 1 到 170 的值(目前)。

我的查询是:

SELECT DISTINCT
    ownership.fCase,
    case.id
FROM
    ownership LEFT JOIN case ON (case.id=ownership.fCase)
WHERE 
    ownership.dUser='demo' 

预计这将在两列上返回 4 行具有相同值的行。问题是右表的最后一行对于 fCase = 140 为 null。这是唯一高于 100 的值。

如果我在没有 WHERE 子句的情况下运行查询,它会显示左侧表中的所有行,但右侧的值仅在低于 101 时才会出现,否则显示为空。

有人可以帮助我,我做错了什么还是这是一个限制或错误?

4

1 回答 1

1

格也是动词,所以可能会混淆。试试 [] 中的表名和列名。EG [case].[id] = [ownership].[fCase]。您是否喜欢仔细检查确保 [case].[id] 和 [ownership].[fCase] 都是 bigint。如果您当前的值是 1-170,那么为什么选择 bigint (9,223,372,036,854,775,807)?该列是否接受空值?

于 2011-08-28T20:35:27.983 回答