数据中的SQL通配符

问题描述

我的情况有点奇怪。我已经生成了插入数据库文件名,以后将与下载的文件进行匹配,但是下载的文件名中间包含一个随机ID。

如果我在插入数据库生成文件名中包含通配符,是否可以将其与实际下载的文件进行比较?

生成名称示例:just-a-file-name-and-a-suffix.mp4
实际下载的文件just-a-file-name-51935-and-a-suffix.mp4

我有零种方法可以真正知道这5位数字。我只知道会有5位数字。理想情况下,我会将生成名称插入just-a-file-name-%-and-a-suffix.mp4之类的数据库中,并在SQL查询中使用LIKE关键字,但这种方式行不通。

我能做些什么来解决这个问题并得到比赛吗?

解决方法

如果愿意,可以使用子字符串,替换和其他一些功能。 以下是使用replace并为其创建函数的示例。

` 创建函数[dbo]。[RemoveNumericCharacters](@ Temp VarChar(1000)) 返回VarChar(1000) 如 开始

Declare @NumRange as varchar(50) = '%[0-9]%'
While PatIndex(@NumRange,@Temp) > 0
    Set @Temp = Stuff(@Temp,PatIndex(@NumRange,@Temp),1,'')

Return @Temp

结束 您可以像这样使用它

从TARGET_TABLE中选择dbo.RemoveNumericCharacters ` 取自以下帖子-Remove numbers from string sql server

请注意,您要将文件字符串传递给该函数,它将返回不带数字的文件名。

谢谢