什么是最好的方式使用SQL过滤掉括号和字母A或B里面的文件名?


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<此处小提琴>

相关内容

  • 没有找到相关文章

最新更新