-1

我目前以这种格式存储我的数据:

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 个值。当子查询跟随 =、!=、<、<=、>、>= 或子查询用作表达式时,这是不允许的。该语句已终止。

我怎样才能解决这个问题 ?

4

2 回答 2

1

您不需要子查询,因为更新发生在同一行的“内部”。

这不行吗?

UPDATE Table1 SET NewColumn = SUBSTRING(Column, 19, 14)
于 2012-06-26T09:47:38.377 回答
0

在文本分析和字符串操作方面,正则表达式提供了比 TSQL 字符串函数更高效、更优雅的解决方案。

您可以编写一个CLR 用户定义函数来提取模式匹配字符串。

UPDATE Table1 SET NewColumn = fn_ExtractPatternMatchingString(Column,pattern)
于 2012-06-26T12:52:01.250 回答