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

2024-02-19

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

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

To

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

写入相同的列名是不可行的Where条款与OR一次又一次。


不,没有办法将 LIKE 与 IN 结合起来directly

有很多方法可以解决这个问题,例如 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%'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 LIKE 子句的 SQL 语法缩短为 IN 子句 的相关文章

随机推荐