Sql。在操作数中使用like
我正在使用SQLServer2005。 我正试图搜索那些名字可能不多的人。 大概是这样的:Sql。在操作数中使用like,sql,sql-server,Sql,Sql Server,我正在使用SQLServer2005。 我正试图搜索那些名字可能不多的人。 大概是这样的: select PersonID from Person where Name like + '%' (select [value] dbo.fnSplit('David;John;Kevin', ';')) + '%' 但这不起作用。试试这个: select PersonID from Person where Name like + '%David%' union select PersonID f
select PersonID from Person
where Name like + '%' (select [value] dbo.fnSplit('David;John;Kevin', ';')) + '%'
但这不起作用。试试这个:
select PersonID from Person where Name like + '%David%'
union
select PersonID from Person where Name like + '%John%'
union
select PersonID from Person where Name like + '%Kevin%';
试试这个:
select PersonID from Person where Name like + '%David%'
union
select PersonID from Person where Name like + '%John%'
union
select PersonID from Person where Name like + '%Kevin%';
如果您只是尝试拆分名称并按名称进行比较,请尝试:
SELECT PersonID FROM Person
WHERE Name IN (select [value] FROM dbo.fnSplit('David;John;Kevin', ';'))
如果您只是尝试拆分名称并按名称进行比较,请尝试:
SELECT PersonID FROM Person
WHERE Name IN (select [value] FROM dbo.fnSplit('David;John;Kevin', ';'))
您可以这样做,为什么要使用fnSplit:
select PersonID from Person where Name like '%David%'or Name like + '%John%'
or Name like + '%Kevin%'
您可以这样做,为什么要使用fnSplit:
select PersonID from Person where Name like '%David%'or Name like + '%John%'
or Name like + '%Kevin%'
这应该允许您使用您指定的类似项
这应该允许您使用指定的LIKE。您不能将
LIKE
与多个模式一起使用,但您可以将选择更改为一次使用一个模式:
select PersonID
from Person p
where exists ( select 1 from (
select [value] as name
from dbo.fnSplit('David;John;Kevin', ';')
) n
where p.Name like '%'+n.name+'%'
)
您不能像那样使用多个模式,但可以将选择更改为一次使用一个模式:
select PersonID
from Person p
where exists ( select 1 from (
select [value] as name
from dbo.fnSplit('David;John;Kevin', ';')
) n
where p.Name like '%'+n.name+'%'
)
因为那是无效的语法,我猜。因为那是无效的语法,我猜。事实上,我的错。但是,我会留下来完成其他的回答:-)的确,我的错。但是,我将把它留给其他答案来完成:-)是的,但是如果fnSplit返回50个名字呢?我不想将其限制为3个名称。是的,但是如果fnSplit返回50个名称呢?我不想把它限制为3个名字。