tsql是否将like与通配符和尾随空格一起使用?

tsql是否将like与通配符和尾随空格一起使用?,tsql,wildcard,space,sql-like,Tsql,Wildcard,Space,Sql Like,我无法使用like语句处理空格和尾随通配符。 我的问题如下: 从表中选择*字段,如'Desc\%' 数据以空格分隔,如Desc Top、Desc Bottom等。当我使用模式“Desc%”时,查询工作,但当我使用模式“Desc%”时,查询不工作。该字段为nvarchar(255) 有什么想法吗 编辑 结果表明,数据是以制表符分隔的,当我从2008 Management Studio复制一个值时,它将制表符转换为空格。愚蠢的错误。我确实喜欢[]提示,所以我把它标记为答案。谢谢大家,我会记住不要相信

我无法使用like语句处理空格和尾随通配符。 我的问题如下:

从表中选择*字段,如'Desc\%'

数据以空格分隔,如Desc Top、Desc Bottom等。当我使用模式“Desc%”时,查询工作,但当我使用模式“Desc%”时,查询不工作。该字段为nvarchar(255)

有什么想法吗

编辑


结果表明,数据是以制表符分隔的,当我从2008 Management Studio复制一个值时,它将制表符转换为空格。愚蠢的错误。我确实喜欢[]提示,所以我把它标记为答案。谢谢大家,我会记住不要相信来自网格结果的副本

使用括号“[”&“]”设置要匹配的单个字符类。在您的示例中,SQL应该如下所示:“从表中选择*字段,如'Desc[]%””

编辑:添加示例,链接

CREATE TABLE #findtest (mytext  varchar(200) )

insert #findtest VALUES ('Desc r')
insert #findtest VALUES ('Descr')

select * from #findtest where mytext like 'Desc[ ]%'

DROP TABLE #findtest

(1 row(s) affected)

(1 row(s) affected)
mytext
--------
Desc r

(1 row(s) affected)

请参阅文章。

因为下划线是单字符通配符,百分比是多字符通配符,所以它们是相同的(“%”和“%”)。这就好像你在要求两个连续的通配符。不确定我是否理解您的问题,但我并不奇怪它的行为与您期望的不一样。

是否考虑使用其ASCII值明确声明您想要一个空格

SELECT * FROM Table WHERE Field Like 'Desc' + CHAR(32) + '%'

“like'Desc%”不起作用有什么具体的原因吗?@alling-“like'Desc%”不会将自己限制在“Desc”(D-e-s-c-blank),它会拾取任何以“Desc”开头的内容@DaveE-是的,会的,但如果他的专栏中只有“Desc Top”、“Desc Bottom”、“Desc InsideOut”等,而不是“Charlemaine的后代”,没有像Desc%这样的实用块可供使用。当然,如果他的表中确实包含这些其他值,那么他就有问题了。皮带和吊带。显然他的数据不是他所期望的。在SS2005上查找“Desc%”对我有用。@DaveE你说得对,有一个选项卡。。。谢谢你的提示。这很有效。很抱歉浪费了你们的时间。数据有一个选项卡而不是空格。我从ManagementStudio网格复制了该值,并将该选项卡转换为一个空格。