sql server中的模式匹配不能像正则表达式一样工作。是否可以使用LIKE匹配数字范围?我需要做这样的事情:
ABCD 1
ABCD 2
ABCD 3
ABCD 4
ABCD 8
ABCD 9
ABCD 10
...
ABCD 20
我想从“ ABCD 1”到“ ABCD 20”中选择所有数据。但是我想忽略“ ABCD 4”和“ ABCD 8”之间的任何内容。我当然可以执行OR条件,但是我只想检查是否有更优雅的方法。
TIA。
您可以使用LIKE运算符,并指定执行以下查询的模式:
SELECT mydata FROM mytable
WHERE(mydata LIKE 'ABCD [1-9]' OR mydata LIKE 'ABCD 1[0-9]' OR mydata LIKE 'ABCD 20')
AND mydata NOT LIKE 'ABCD [4-8]';
或者,更简洁,更简短的内容:
SELECT mydata FROM mytable
where mydata like 'ABCD [^4-8]%';
看看这个SQL Fiddle。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句