在SQL中结合LIKE和IN

Jon*_*son 4 sql sql-server-2008

而不是执行:

SELECT a
FROM b
WHERE a LIKE'a%'
或LIKE'b%'
或LIKE'c%'


有没有办法执行像这个伪代码一样的功能?

SELECT a
FROM b
WHERE IN('a%','b%','c%')

n8w*_*wrl 9

可能对你的例子太具体了,但你可以做'喜欢'[ac]%'.除此之外,我不知道任何类似LIKE的IN语法

  • 如果你想跳过一个字母,你也可以做'[abce]%'(在这个例子中为d) (2认同)

C-P*_*uru 5

您可以将条件值转储到临时表中(不使用通配符).然后做一个像这样的连接:

SELECT b.a FROM b INNER JOIN #likevals on b.a LIKE #likevals.value + '%'
Run Code Online (Sandbox Code Playgroud)

WHERE #likevals看起来像:

value
------
a
b
c
Run Code Online (Sandbox Code Playgroud)