是否有一种简单的方法可以将LIKE
和IN
合并到SQL Server的一个语句中,而不使用大量AND
和OR
?
e.g。我在MySQL中知道你可以这样做:
SELECT * FROM table1 WHERE column1 REGEXP 'value1|value2|value3'
答案 0 :(得分:6)
不是真的。
LIKE
模式语法中没有交替运算符。如果在2008年你可以使用
SELECT *
FROM table1
WHERE EXISTS(SELECT *
FROM (VALUES ('value1'),
('value2'),
('value3')) Vals(val)
WHERE column1 LIKE '%' + val + '%')
您也可以在SQL Server中使用正则表达式,但不能在本机使用。您需要启用CLR并为此安装程序集。
答案 1 :(得分:0)
另一种选择是将搜索值放在表中并构建动态SQL来完成工作。不推荐,但有时候有帮助...