将LIKE子句的SQL语法缩短为IN子句

时间:2013-05-09 10:01:10

标签: sql

在SQL中, 有没有办法缩短语法From

Select * from TableName
where ColumnName like '%A%' or ColumnName like '%B' or ColumnName like 'C%'

Select * from TableName
where ColumnName in ('%A%','%B','C%')

Where子句中一次又一次地使用OR编写相同的列名称是不可行的。

1 个答案:

答案 0 :(得分:2)

没有办法直接将LIKE与IN 结合起来

有很多方法,比如SQL Server的这个例子

Select *
from
   TableName T
   JOIN
   (VALUES ('%A%'),('%B'),('C%')) AS X(Expression) ON T.ColumnName LIKE X.Expression

这会将多个OR搜索条件更改为行和JOIN

或者您可以使用UNION在一个

中组合多个查询
Select * from TableName
where ColumnName like '%A%'
union
Select * from TableName
where ColumnName like '%B'
union
Select * from TableName
where ColumnName like 'C%'