我有下表(Table1)和SQL查询,我试图删除数字以及column1中的括号,并更新第2列中的结果值。
Idnum Column1 Column2
-------------------------------
1 imports(399) imports
2 imports(400) imports
3 imports(401) imports
代码:
Update #Table1
set Column2 = Replace((Select Column1 from #Table1 where IDNUM = 1),'()','')
where IDNUM = 1
我知道上面的代码只尝试将其替换为一列,即使这是一个错误的代码(只是作为一个示例显示)。
如何实现上述过程,数字可以是上面示例中的任何数字我已经显示了3位数字。
答案 0 :(得分:2)
MS SQL Server 2008架构设置:
In [218]: x_roots
Out[218]: array([0.9642754164139411])
In [219]: y_roots
Out[219]: array([ 37.18562497])
查询1 : 运行此命令以验证输出是否可接受:
CREATE TABLE Table1
([Idnum] int, [Column1] varchar(12), [Column2] varchar(7))
;
INSERT INTO Table1
([Idnum], [Column1], [Column2])
VALUES
(1, 'imports(399)', 'imports'),
(2, 'imports(400)', 'imports'),
(3, 'imports(401)', 'imports'),
(3, 'imports', 'imports')
;
<强> Results 强>:
select Column1
,case
when charindex('(', Column1) > 0
then substring(Column1, 1, charindex('(', Column1) - 1)
else Column1
end as Column1Fixed
from Table1
所以,你可以运行它来进行更新:
| Column1 | Column1Fixed |
|--------------|--------------|
| imports(399) | imports |
| imports(400) | imports |
| imports(401) | imports |
| imports | imports |
答案 1 :(得分:1)
这应该做你想要的。它将提取两个括号之间的值。
update #Table1
set Column2 = substring(Column1,charindex('(',Column1,1)+1,charindex(')',column1,1)-charindex('(',Column1,1)-1)