我目前以这种格式存储数据:
Word1 - Word2 - Number.I.Need.To.Extract.Separated.By.Periods - Word3 - Word4
我想要做的是编写一个更新语句,将我刚刚创建的列设置为Number.I.Need.To.Extract.Separated.By.Periods
。
我最好的方法是做什么,或者像这样工作?
我试着写如下:
UPDATE Table1
SET NewColumn =
(SELECT SUBSTRING(Column, 19, 14)
FROM Table1)
结果是:
子查询返回的值超过1。这是不允许的 子查询跟随=,!=,<,< =,>,> =或当子查询用作 一种表达。声明已经终止。
我该如何解决这个问题?
答案 0 :(得分:1)
您不需要子查询,因为更新发生在同一行的“内部”。
这不起作用吗?
UPDATE Table1 SET NewColumn = SUBSTRING(Column, 19, 14)
答案 1 :(得分:0)
在文本分析和字符串操作方面,regular expressions提供了比TSQL字符串函数更高效和更优雅的解决方案。
您可以编写一个CLR User-Defined Function来提取模式匹配字符串。
UPDATE Table1 SET NewColumn = fn_ExtractPatternMatchingString(Column,pattern)