我有一个包含字符和数字的列,由Underscore
分隔例如:PI(列名称)= ID_32,ID_43,ID_03
我还创建了一个名为UniqueColumn的新列。在本专栏中,我只想要PI列中的数字
因此它应如下所示:UniqueColumn = 32,43,03
到目前为止我的代码:
getMessage()
答案 0 :(得分:1)
UPDATE table SET UniqueColumn = substring(PI, charindex('_',PI)+1, len(PI));
使用charindex
查找_
,然后使用substring
获取结果。
答案 1 :(得分:0)
如果下划线左侧的字符始终为" ID",则可以使用Replace()函数。
Update table
Set UniqueColumn = Replace(PI,'ID_','')
如果字符并非总是特定的' ID'那么这样的事情可能有用:
DECLARE @UQ as varchar(50)
DECLARE TblCursor CURSOR
FOR SELECT PI FROM testTable
OPEN tblCursor
FETCH NEXT FROM tblCursor INTO @UQ
WHILE @@FETCH_STATUS = 0
BEGIN
WHILE CHARINDEX('_',@UQ)>0
BEGIN
SET @UQ = LEFT(@UQ,PATINDEX('%[^0-9,]%',@UQ)-1) + RIGHT(@UQ,LEN(@UQ)-CHARINDEX('_',@UQ))
END
UPDATE testTable
SET UniqueColumn = @UQ
WHERE CURRENT OF tblCursor
FETCH NEXT FROM tblCursor
END
CLOSE tblCursor
DEALLOCATE tblCursor
GO
结果:
PI UniqueColumn
ID_32,ID_43,ID_03 32,43,03