Select filename
from cleansedreports s with (nolock)
where not exists (select 1
from (values ('D2'), ('P2')) v(Filename)
where s.Filename like '%' + v.Filename + '%')
所以上面的查询基本上过滤掉了所有包含D2或P2的文件名,有没有办法过滤掉其中的任何D或p(比如D5, F27这样的文件名)。所有这些文件名的一个共同点是它们里面都有一个括号,比如augustsalesreport[D21], Julysalesreport[P23]。
什么是最好的最好的方法过滤掉所有里面有字母D或p的括号文件?
可以使用正则表达式
CREATE TABLE cleansedreports (filename varchar(30)); INSERT INTO cleansedreports VALUES ('augustsalesreport[D21]'),('Julysalesreport[P23]'),('Julysalesreport[F23]') GO
受影响的3行
SELECT * FROM cleansedreports WHERE filename LIKE '%[[][D|P][0-9]%]' GO
| filename ||:--------------------- |[D21]| Julysalesreport[P23] |
db<此处小提琴>此处小提琴>