回答

收藏

SQL Server,结合使用LIKE和IN?

技术问答 技术问答 75 人阅读 | 0 人回复 | 2023-09-13

有一个简单的方法结合起来LIKE,并IN在SQL Server中的一个声明中,没有使用大量的AND和OR?; a% \4 O" f! M1 [7 d& R
例如,我知道在MySQL中您可以通过以下方式做到这一点:
$ W: G# `+ J# H! K4 l) `! p; }SELECT * FROM table1 WHERE column1 REGEXP 'value1|value2|value3'- T! O* p& ~4 p8 l# S; o
                ( O1 v* b/ @1 s0 Q- z" P- _% P
解决方案:
+ w3 k$ E  X$ Y& x7 v# ]2 \2 f" {               
6 p4 ?& f& M5 Q1 P9 ]/ x; `
( U% s  r% s" k. p$ H% H- g' M- k
                并不真地。5 ~% U# l6 [, ?8 A) q# N7 T  N5 W# n
LIKE模式语法中没有交替运算符。如果在2008年可以使用
$ a: k( C- M' ]/ M3 RSELECT *  X! N6 T, ?5 s7 }1 |1 E. C
FROM   table12 t& S9 Z0 ]2 W2 b
WHERE  EXISTS(SELECT *
/ X, @1 S& S6 e( l5 u9 r  |, ~              FROM   (VALUES ('value1'),2 N9 Z! u% c5 w. q
                             ('value2'),- D5 M( G' C# g+ k
                             ('value3')) Vals(val). P3 U6 N3 ^& w1 c9 T
              WHERE  column1 LIKE '%' + val + '%')
3 e, o: Q8 m$ z6 |$ j# n您也可以在SQL Server中使用正则表达式,但不能在本地使用。您需要启用CLR并为此安装一个程序集。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则