2016-08-12 50 views
0

这将返回110个结果:T-SQL外卡带回没有结果

select * 
from regions 
where sponsor like '%' 

这将返回结果为零,而应返回110个记录:

declare @sponsor char(4) 
set @sponsor = '%' 

select * 
from regions 
where sponsor like @sponsor 

回答

10

您使用的是CHAR(4),这意味着,当你做:

declare @sponsor char(4) 
set @sponsor = '%' 

赞助商的实际值是'% '。无论是使用CHAR(1)还是VARCHAR(4)

+0

非常感谢你,我会在那一整天出演并且无处可去。我的大脑完全被炒了。我已经主演了超过一天的冗长查询。它有3页长。我想我只是要重写它,因为还有更多问题 – Roto

4

char类型填充为空白。你的第二个查询实际上相当于这个:

select * from regions where sponsor like '% ' 

@sponsor一个char(1)varchar(4)