我有一个问题,即在我正在制作的表格中更新我的一些记录。
表employee有一个包含id(字符串值)的列,如下所示:
45921!bba
569874
56281!rti
56287!tri
569877
etc.
因此,其中一些记录只是数字,其中一些记录带有感叹号,后面跟着一些字母。我需要做的是只更新包含的记录!和信件。 所以最终结果将如下所示:
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但是欢迎使用任何指针时,这不起作用。
我试图使用替换功能,但现在模式总是相同的,唯一不变的是!符号所以之后的任何东西都可以丢弃。
谢谢。
答案 0 :(得分:2)
您可以使用字符串函数执行此操作:
update employee
set employeeId = left(employeeId, chardindex('?', employeeId) - 1)
where employeeID like '%?%';