这是一个非常简单的查询:
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
子句时,它不返回任何结果:
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'
预期结果:
奇怪的是,它什么也没有回报。为什么它不起作用?
Country
的架构:(仅提供相关表格)
CountryCode int PK
国家/地区varchar(50)
答案 0 :(得分:4)
您的数据中有空格或一些不可见的字符。
我总是在SSMS中对此进行测试的方法是获取第一个查询的结果,即返回数据,单击包含" France"的网格中的框。 (在这个例子中)转到查询编辑器并粘贴(ctrl-v)两个字符之间,如''。如果有一些空白区域,您会看到类似的内容:
'France '
而不是:
'France'
答案 1 :(得分:0)
我唯一能想到的是你在“法国”开头有一个新行'\ n',它实际上并没有出现在“Select * from”>尝试并使用LIKE'France',如果有效,则必须是换行符。
试
= '\nFrance'
或
= '\nFrance\n'
PS:我知道这是因为我有时会遇到类似的问题。