好吧,您可以charindex
尝试查找索引,http://
然后您需要找到 URL 的结尾(这取决于您的数据、空格或“)。
你也可以写CLR标量函数,实现正则表达式find
using System;
using System.Collections;
using System.Text.RegularExpressions;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;
public class CLR
{
[SqlFunction(FillRowMethodName = "FillRow")]
public static IEnumerable RegexMatch(string pattern, string text)
{
var r = new Regex(pattern);
return r.Matches(text);
}
public static void FillRow(Object obj, out SqlInt32 index, out SqlString match)
{
var m = (Match)obj;
index = new SqlInt32(m.Groups[0].Index + 1);
match = new SqlString(m.Groups[0].Value);
}
}
然后你需要从这个类库在你的 SQL Server 上创建程序集
create assembly CLR from 'C:\CLR.dll' with permission_set = safe
然后你可以创建函数
create function RegexMatch(@pattern nvarchar(4000), @text nvarchar(4000))
returns table ([index] int, match nvarchar(4000))
as external name CLR.CLR.RegexMatch