比较SQL中的字符串值

时间:2018-11-18 16:08:07

标签: sql-server

我有一个从程序中调用的存储过程。此存储过程传递了2个名称,需要在数据库中查找相似的名称。但是,当我尝试比较-“ AFC伯恩茅斯”与数据库中的名称“伯恩茅斯”时。

    bet.searchFixtureForResult 
    @homeTeam NVARCHAR(MAX), 
    @awayTeam NVARCHAR(MAX), 
    @date DATE
AS
    SELECT fixtureId 
    FROM bet.fixture 
    WHERE homeTeam IN (SELECT teamId 
                       FROM bet.team 
                       WHERE team LIKE '%' + @homeTeam + '%')
      AND awayTeam IN (SELECT teamId 
                       FROM bet.team 
                       WHERE team LIKE '%' + @awayTeam + '%') 
      AND fixtureDate = @date

这应该返回属于给定参数内的灯具的ID。如何比较相似的字符串,以使我以与C#中的.Contains相同的方式进行比较?

1 个答案:

答案 0 :(得分:2)

我认为您根本不需要bet.team,您的查询就像

SELECT fixtureId 
FROM bet.fixture
WHERE (HomeTeam LIKE '%' + @HomeTeam + '%' OR @HomeTeam LIKE '%' + HomeTeam + '%')
      AND
      (AwayTeam LIKE '%' + @AwayTeam + '%' OR @AwayTeam LIKE '%' + AwayTeam + '%')
      AND
      fixtureDate = @date;

这里有一些 Demo