我有一个非常简单的 CLR 函数来进行正则表达式匹配
public static SqlBoolean RegExMatch(SqlString input, SqlString pattern)
{
if (input.IsNull || pattern.IsNull)
return SqlBoolean.False;
return Regex.IsMatch(input.Value, pattern.Value, RegexOptions.IgnoreCase);
}
它允许我写一个类似的 SQL 语句。
SELECT * FROM dbo.table1 WHERE dbo.RegexMatch(column1, '[0-9][A-Z]') = 1
-- match entries in col1 like 1A, 2B etc...
我只是认为重新制定该查询会很好,因此可以将其称为
SELECT * FROM dbo.table1 WHERE column1 REGEXLIKE '[0-9][A-Z]'
是否可以使用 CLR 代码创建新的比较运算符。(我从网上的短暂浏览中猜测答案是否定的,但问没有害处)