【问题标题】:SQL Wildcard within data数据中的 SQL 通配符
【发布时间】:2020-08-12 00:47:39
【问题描述】:

我的情况有点奇怪。我已生成插入数据库的文件名,稍后将与下载的文件匹配,但是下载的文件在其名称中间包含一个随机 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 关键字,但它不起作用。

我能做些什么来解决这个问题并获得匹配吗?

【问题讨论】:

  • 请标记您的数据库
  • 这5位数字是用-分隔的吗?

标签: sql wildcard


【解决方案1】:

如果你愿意,你可以使用 substring、replace 和其他一些函数。 下面是一个使用 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

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

谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-08
    • 2013-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多