使用 SQL,我想返回列中第三个正斜杠之前的所有文本
所以
/one/two/three/whatever/testing
将返回:
/one/two/three
有什么快速而肮脏的方法可以在 SQL 中执行此操作(特别是 MS SQL 2005+ 下的 MS T-SQL)?
最佳答案
既然你说“快速而肮脏”,我假设这个非常快速且非常肮脏的解决方案不会收到一堆反对票。下面的 SQL 使用多个 SUBSTRING()
函数来查找第三个斜杠:
DECLARE @str VARCHAR(50)
SET @str = '/one/two/three/whatever/testing'
SELECT SUBSTRING(@str, 0, CHARINDEX('/', @str, CHARINDEX('/', @str, CHARINDEX('/', @str, CHARINDEX('/', @str, 0) + 1) + 1) + 1))
您可以看到一个工作示例 here .
关于第 N 个匹配之前的 SQL 文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9163645/