在一定长度和正则表达式替换字符串后,如何更新表中的某些列以截断记录?

时间:2018-12-04 16:57:51

标签: sql sql-server string

我在一个表中有一个列列表,我希望将其截断为最多255条记录并从列中删除任何百分号,我该怎么做?

old Table

col1                                              col2    
adfaadfadfadfdfdafdjf;kldjf;adjsfjads;f            60%

new Table


col1                                              col2    
adfaadfadfadf                                      60

col1不代表仅用于说明目的的完整字符串。

我正在使用sql server2012。

到目前为止的

代码:

SELECT
case 
    when len(col)=255
    then left(col, 255)
    else col end col
from table

1 个答案:

答案 0 :(得分:1)

这不像...那么简单吗?

UPDATE YourTable
SET StringColumn = LEFT(StringColumn,255),
    PercentColumn = REPLACE(PercentColumn,'%','')
GO

--You then probably want to fix that column's datatype.
ALTER TABLE YourTable ALTER COLUMN PercentColumn int; --Assuming integer values only.