在T-SQL中是否存在精确的字符串比较?

问题描述 投票:1回答:2

我已经搜索了很多答案,但我还没有找到以下简单任务的解决方案:

我有一个冗长的TextString,并希望找到与其中的字符串'Text'完全匹配。

TextString LIKE '% Text %'

给出所有出现的'text'和'Text',也开始和/或结束一个单词。我只想要出现'Text'(区分大小写),带有前面和后面的''。

我知道LIKE=关于SPACES的行为,所以没有必要再次解释这个,因为它已在本网站的其他地方完成。

sql-server tsql sql-like equality
2个回答
1
投票

试试这个:

测试数据。

declare @t table (word nvarchar(50))

insert into @t
values (' text '), (' Text '), ('text '), (' text'), (' other '), (' text in large string'), ('xxxxxtext'),('xxxxxtext '), ('xxxx text') string')

相关查询。

select * from @t

where word like '%' + ' text ' + '%'

返回:

 text 
 Text 
 text in large string

8
投票

您是否专门询问Microsoft SQL Server?如果是这样...

“Like”比较的行为取决于您为数据库(或表)设置排序规则的方式。如果您具有区分大小写的排序规则,则“喜欢”将以区分大小写的方式运行。

可以根据具体情况覆盖此行为:

SELECT MyField FROM MyTable 
WHERE MyField COLLATE Latin1_General_CS_AS LIKE '% Text %';
© www.soinside.com 2019 - 2024. All rights reserved.