如何根据sql中的条件更新多行

时间:2012-12-05 11:08:35

标签: sql sql-server sql-server-2008 tsql

我有一个数据库,假设我在Score中有一个名为Score的表,有两个字段

  1. 编号
  2. 名称
  3. 现在,当我看到有许多名称以-开头时,例如

    -Karl-KSJ
    -Jhon-Kate
    -Xyz-Abc
    

    现在我想从所有行中删除前导-并更新它们,并保留名称不以-开头的所有行。我怎样才能在sql中实现这一点。请注意,我拥有数百万条记录,因此性能将发挥重要作用。

    谢谢,

1 个答案:

答案 0 :(得分:4)

尝试这样,很简单,可能足够快:

BEGIN TRAN

UPDATE  Score 
SET     Name = RIGHT(Name, LEN(Name) - 1)
WHERE   LEFT(Name, 1) = '-'

ROLLBACK

这是 SQL Fiddle