SQL Server, combining LIKE and IN?

2020-02-06 08:35发布

Is there an easy way to combine LIKE and IN in one statement in SQL Server, without using a lot of AND and OR?

e.g. I know in MySQL you can do it this way:

SELECT * FROM table1 WHERE column1 REGEXP 'value1|value2|value3'

2条回答
Bombasti
2楼-- · 2020-02-06 08:55

Not really.

There is no alternation operator in the LIKE pattern syntax. If on 2008 you can use

SELECT *
FROM   table1
WHERE  EXISTS(SELECT *
              FROM   (VALUES ('value1'),
                             ('value2'),
                             ('value3')) Vals(val)
              WHERE  column1 LIKE '%' + val + '%')  

You can also use Regular Expressions in SQL Server but not natively. You need to enable CLR and install an assembly for this.

查看更多
看我几分像从前
3楼-- · 2020-02-06 08:56

Another option would be to put the search values in a table and build a dynamic SQL to do the work. It is not recommended but sometimes helps...

查看更多
登录 后发表回答