在SQL中使用LIKE在1列中的1个字符串中查找两个值

时间:2016-07-18 15:21:46

标签: sql sql-server

我需要一个类似的语句来在1列中找到两个字符串,即。

  • 表名为CustomerNumber
  • 列名称为ID

ID列中的示例字符串为:

12345678909876543210
98765432109876543210

我想找到包含456和654的行。

我的SQL语句是:

Select * 
from CustomerNumber 
where ID like all (values ('%456%'), (%654%'))

但我得到表达错误。

2 个答案:

答案 0 :(得分:2)

您可以使用like

select cn.*
from customernumber cn
where cn.id like '%456%' and cn.id like '%654%';

如果您希望按特定顺序使用它们,请使用一个like模式:

select cn.*
from customernumber cn
where cn.id like '%456%654%';

我从未见过带有返回多行的子查询的构造like alllike。我想这会产生语法错误。

答案 1 :(得分:0)

SELECT *
FROM CustomerNumber
WHERE ID like '%456%' AND ID like %654%'