Sql server 获取SQL Server中包含类似单词的表中的单词
我在一列中有两种类型的字符串Sql server 获取SQL Server中包含类似单词的表中的单词,sql-server,sql-server-2012,Sql Server,Sql Server 2012,我在一列中有两种类型的字符串 DECLARE @t table(parameter varchar(100)) INSERT @t values ('It contains eact01' ), ('It contains preact01') 我正在尝试获取包含单词“eact01”的字符串 我的问题是,使用下面的SELECT,我还得到了包含“preact01”的变量,因为它包含“eact01” SELECT * FROM @t WHERE parameter LIKE '%eact01%'
DECLARE @t table(parameter varchar(100))
INSERT @t values
('It contains eact01' ),
('It contains preact01')
我正在尝试获取包含单词“eact01”的字符串
我的问题是,使用下面的SELECT,我还得到了包含“preact01”的变量,因为它包含“eact01”
SELECT * FROM @t WHERE parameter LIKE '%eact01%'
如何仅获取包含“eact01”的行?为此,您需要一个字符串拆分器。这里有一张是从亚伦·伯特兰的作品中摘取的:
你需要一个字符串拆分器。这里有一张是从亚伦·伯特兰的作品中摘取的:
最简单的方法就是添加空间:
SELECT * FROM @t WHERE parameter LIKE '% eact01%' or parameter LIKE 'eact01%'
最简单的方法就是添加空间:
SELECT * FROM @t WHERE parameter LIKE '% eact01%' or parameter LIKE 'eact01%'
这应该可以找到所有的组合,任何不是字母或数字的字符都可以将其视为一个spit字符或一个新词
SELECT *
FROM @t
WHERE
parameter like '%[^0-9a-z]eact01'
or parameter like '%[^0-9a-z]eact01[^0-9a-z]%'
or parameter like 'eact01[^0-9a-z]%'
or parameter = 'eact01'
这应该可以找到所有的组合,任何不是字母或数字的字符都可以将其视为一个spit字符或一个新词
SELECT *
FROM @t
WHERE
parameter like '%[^0-9a-z]eact01'
or parameter like '%[^0-9a-z]eact01[^0-9a-z]%'
or parameter like 'eact01[^0-9a-z]%'
or parameter = 'eact01'
试试这个-
select *
from @t
where
parameter='eact01'
OR parameter like '%[^0-9a-z]eact01%'
OR parameter like 'eact01[^0-9a-z]%'
OR parameter like '%[^0-9a-z]eact01[^0-9a-z]%'
试试这个-
select *
from @t
where
parameter='eact01'
OR parameter like '%[^0-9a-z]eact01%'
OR parameter like 'eact01[^0-9a-z]%'
OR parameter like '%[^0-9a-z]eact01[^0-9a-z]%'