在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
编写相同的列名称是不可行的。
答案 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%'