仅更新 SQL 中的特定记录
Updating only specific records in SQL
我有一个关于更新我正在处理的 table 中的一些记录的问题。
table 员工有一列 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 的记录时,这不起作用,但欢迎任何指点。
我尝试使用替换功能,但是模式现在总是一样的,唯一不变的是!符号,所以之后的任何内容都可以丢弃。
谢谢。
您可以使用字符串函数执行此操作:
update employee
set employeeId = left(employeeId, chardindex('?', employeeId) - 1)
where employeeID like '%?%';
我有一个关于更新我正在处理的 table 中的一些记录的问题。
table 员工有一列 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 的记录时,这不起作用,但欢迎任何指点。
我尝试使用替换功能,但是模式现在总是一样的,唯一不变的是!符号,所以之后的任何内容都可以丢弃。
谢谢。
您可以使用字符串函数执行此操作:
update employee
set employeeId = left(employeeId, chardindex('?', employeeId) - 1)
where employeeID like '%?%';