SQL LIKE运算符在应该没有显示任何结果时

IQn*_*IQn 1 sql t-sql sql-server sql-like

我有一个包含大量信息的Vehicle表,但其中一列是MSSQL表中的'Owner'

但是其中一个所有者我无法选择何时使用,LIKE但如果我使用的话可以=

'Silkeborg Distributionscenter'是所有者(是的,表格和参数中都有一个双重空间)

所以参数是:

DECLARE @Owners nvarchar(MAX) = 'Silkeborg  Distributionscenter'
Run Code Online (Sandbox Code Playgroud)

我试过了:

SELECT * FROM Vehicle WHERE @Owners = Owner 
--This gave me all the correct results
Run Code Online (Sandbox Code Playgroud)

然后:

SELECT * FROM Vehicle WHERE @Owners LIKE Owner
--No result
Run Code Online (Sandbox Code Playgroud)

然后:

SELECT * FROM Vehicle WHERE @Owners COLLATE Danish_Norwegian_CI_AS LIKE Owner COLLATE Danish_Norwegian_CI_AS
--No result
Run Code Online (Sandbox Code Playgroud)

我需要使用LIKE因为我需要能够一次选择一个所有者数组.所以原始的select语句看起来像这样

SELECT * FROM Vehicle WHERE ('|' + @Owners + '|' like '%|' + Owner + '|%')
--No result
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

编辑: 一切正常,@ Owners是'Fredericia Distributionscenter'而不是'Silkeborg Distributionscenter',两者都在桌面之内.

这些东西是否适用于'Silkeborg Distributionscenter'文本?

Arv*_*rvo 5

根据要求提升答案.

在Vehicle表的Owner字段的末尾有一些空格字符.'='运算符跳过尾随空格,'like'运算符不跳过尾随空格.