我有一个存储2个值的列。示例如下:
| Column 1 |
|some title1 =ExtractThis ; Source Title12 = ExtractThis2|
我想将'ExtractThis'删除到一列中,将'ExtractThis2'删除到另一列中。我已经尝试使用子字符串,但它不起作用,因为第1列中的数据是可变的,因此它并不总是划出我想要的值。下面的SQL:
SELECT substring(d.Column1,13,24) FROM dbo.Table d
这会返回'Extract This',但对于其他列,它需要太多或太少。是否有一个函数或函数组合可以让我在角色上一致地分割?这与我的长度计数不同,在我的专栏中是一致的。
答案 0 :(得分:0)
select substring(col1,CHARINDEX('=',col1)+1,CHARINDEX (';',col1)-CHARINDEX ('=',col1)-1) Val1,
substring(col1,CHARINDEX('=',col1,CHARINDEX (';',col1))+1,LEN(col1)) Val2
from #data
重复计算可以从每行减少5到3。 但我想相信SQL SERVER完成的这个简单优化。