请帮我编写一个 PATINDEX 或 LIKE 语句来匹配以下字符其他:
- A-Z、0-9、连字符 (-)、句点 (.)、下划线 (_) 和波形符 (~)
我计划在带有 nvarchar(200) 输入的标量 UDF 中使用它,它通过以下方式处理输入:
- 将不匹配的字符替换为连字符 (-)
- 将出现的两个连字符 (--) 替换为单个连字符 (-)
- 删除前导和尾随连字符 (-)
- 返回处理后的输入
这将用于创建 SEO 友好 URL 的一部分,例如/my-seo-Friendly-url-1
。除了模式匹配部分之外,我对做这个 UDF 非常有信心。类似正则表达式的东西让我很困惑!请帮忙。
感谢您提前提供的帮助。
最佳答案
可能最好在您的应用程序中完成,但是
SELECT PATINDEX('%[^-a-zA-Z0-9.~_]%', @YourString COLLATE Latin1_General_BIN)
应该在 TSQL 中执行
关于sql-server - SQL Server 2008 r2 - T-SQL LIKE 或 PATINDEX 匹配 A-Z、0-9、连字符、句点、下划线和波形符以外的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10675020/