将LIKE子句的SQL语法缩短为IN子句
在SQL中, 有没有办法缩短语法将LIKE子句的SQL语法缩短为IN子句,sql,Sql,在SQL中, 有没有办法缩短语法 Select * from TableName where ColumnName like '%A%' or ColumnName like '%B' or ColumnName like 'C%' 到 在Where子句中反复使用或写相同的列名是不可行的。不,没有一种方法可以直接将LIKE和in组合在一起 有很多方法可以解决这个问题,比如这个SQLServer示例 Select * from TableName T JOIN (VALUES
Select * from TableName
where ColumnName like '%A%' or ColumnName like '%B' or ColumnName like 'C%'
到
在
Where
子句中反复使用或写相同的列名是不可行的。不,没有一种方法可以直接将LIKE和in组合在一起
有很多方法可以解决这个问题,比如这个SQLServer示例
Select *
from
TableName T
JOIN
(VALUES ('%A%'),('%B'),('C%')) AS X(Expression) ON T.ColumnName LIKE X.Expression
这会将多个或多个搜索条件更改为行和联接
或者可以使用联合将多个查询合并到一个查询中
Select * from TableName
where ColumnName like '%A%'
union
Select * from TableName
where ColumnName like '%B'
union
Select * from TableName
where ColumnName like 'C%'
使用全文搜索。我认为你需要重新进行可行性研究。SQL Server引擎说迭代所有这些字符是不可行的,但是。。。(见我之前的评论。)
Select * from TableName
where ColumnName like '%A%'
union
Select * from TableName
where ColumnName like '%B'
union
Select * from TableName
where ColumnName like 'C%'