仅更新SQL

时间:2015-12-09 03:05:51

标签: sql sql-server-2008 replace sql-update str-replace

我有一个问题,即在我正在制作的表格中更新我的一些记录。

表employee有一个包含id(字符串值)的列,如下所示:

employeeID

45921!bba
569874
56281!rti
56287!tri
569877

etc.

因此,其中一些记录只是数字,其中一些记录带有感叹号,后面跟着一些字母。我需要做的是只更新包含的记录!和信件。 所以最终结果将如下所示:

EMPLOYEEID

45921
569874
56281
56287
569877

这是我到目前为止所做的:

declare @newID nvarchar(80)
set @newID =
(
select LEFT(employee.employeeID,CHARINDEX('!',employee.employeeID)-1) as newID
from employee
where employeeID like '%!%'
)


update employee set employeeID=@newID where employeeID like '%!%';

我理解问题是什么,当我有多个记录可以作为newID但是欢迎使用任何指针时,这不起作用。

我试图使用替换功能,但现在模式总是相同的,唯一不变的是!符号所以之后的任何东西都可以丢弃。

谢谢。

1 个答案:

答案 0 :(得分:2)

您可以使用字符串函数执行此操作:

update employee
    set employeeId = left(employeeId, chardindex('?', employeeId) - 1)
    where employeeID like '%?%';