使用 SQL 过滤掉其中包含括号和字母 A 或 B 的文件名的最佳方法是什么?
what is the best way using SQL to filter out file name with bracket and letter A or B inside of it?
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(如filanmes,如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 |
| :--------------------- |
| augustsalesreport[D21] |
| Julysalesreport[P23] |
db<>fiddle here
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(如filanmes,如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 | | :--------------------- | | augustsalesreport[D21] | | Julysalesreport[P23] |
db<>fiddle here