【发布时间】:2015-08-26 13:08:23
【问题描述】:
我正在使用以下查询查询我的数据:
Select
Convert(varchar(50),PE.dateofstay,103) 'Date of Stay',
C.embossname 'EmbossName',
PE.pastexperience,
U.UserName ,
M.merchantname1
from card C
inner join PastExperience PE on c.EmbossLine=PE.embossline
inner join Users U on U.UserId=PE.userid
inner join Merchant M on M.MerchantID=U.MerchantID
where C.Embossline = '02563987'
-- and (C.EmbossName Like '%DANIEL MWANGALA%' )
AND(PE.dateofstay>='2013-11-03 00:00:00.000' and PE.dateofstay<='2015-11-03 00:00:00.000')
问题是当我用EmbossLine 过滤它时,我得到了想要的结果,但是当我试图用EmbossName 过滤它时(我已经在这里评论过)
我什么都没有?我这么坚持这个?为什么会这样?
【问题讨论】:
-
提供样本数据。
-
你确定你得到像
DANIEL MWANGALA这样的EmbossName,而不是例如DANIEL <multiple_spaces_or_tab> MWANGALA。搜索LIKE '%phrase%'也是非常糟糕的做法,因为它不支持SARG -
该查询在语法上没有任何问题。我们需要查看您的数据,以了解为什么没有退回带有该 EmbossName 的卡片。
-
你确定你有记录
EmbossName包含DANIEL MWANGALA -
你的标题也有误导性
标签: sql-server filter inner-join where-clause