where子句什么都不返回

时间:2015-05-21 20:51:27

标签: sql sql-server

这是一个非常简单的查询:

select br.BranchCode, br.BranchName,cn.Country, cd.AggregateCreditExposure as [CreditExposure] 
from Branches br join CreditDetails cd 
on br.BranchCode = cd.BranchCode join Country cn    
on br.CountryCode = cn.CountryCode

它给了我结果集:

enter image description here

当我尝试放置where子句时,它不返回任何结果:

select br.BranchCode, br.BranchName,cn.Country, cd.AggregateCreditExposure as [CreditExposure] 
from Branches br join CreditDetails cd 
on br.BranchCode = cd.BranchCode join Country cn    
on br.CountryCode = cn.CountryCode
where cn.Country = 'France'

预期结果:

enter image description here

奇怪的是,它什么也没有回报。为什么它不起作用?

Country的架构:(仅提供相关表格)

  • CountryCode int PK

  • 国家/地区varchar(50)

2 个答案:

答案 0 :(得分:4)

您的数据中有空格或一些不可见的字符。

我总是在SSMS中对此进行测试的方法是获取第一个查询的结果,即返回数据,单击包含" France"的网格中的框。 (在这个例子中)转到查询编辑器并粘贴(ctrl-v)两个字符之间,如''。如果有一些空白区域,您会看到类似的内容:

'France   '

而不是:

'France'

答案 1 :(得分:0)

我唯一能想到的是你在“法国”开头有一个新行'\ n',它实际上并没有出现在“Select * from”>尝试并使用LIKE'France',如果有效,则必须是换行符。

= '\nFrance'

= '\nFrance\n'
PS:我知道这是因为我有时会遇到类似的问题。