T-SQL通配符不会带来任何结果

T-SQL通配符不会带来任何结果,sql,sql-server,tsql,Sql,Sql Server,Tsql,这将返回110个结果: select * from regions where sponsor like '%' 这将返回零结果,并应返回110条记录: declare @sponsor char(4) set @sponsor = '%' select * from regions where sponsor like @sponsor 字符类型用空格填充。您的第二个查询实际上相当于: select * from regions where sponsor like '% '

这将返回110个结果:

select * 
from regions 
where sponsor like '%'
这将返回零结果,并应返回110条记录:

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

select * 
from regions 
where sponsor like @sponsor
字符类型用空格填充。您的第二个查询实际上相当于:

select * from regions where sponsor like '%   '
将@赞助商设置为char1或varchar4。

您正在使用CHAR4,这意味着当您这样做时:

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

发起人的实际值为“%”。要么用CHAR1要么用VARCHAR4

非常感谢你,我会整天都在这部电影中出演,结果一无所获。我的大脑完全崩溃了。一天多来,我一直在关注这个冗长的问题。它有3页长。我想我要重写它,因为还有很多问题