根据其他列值

时间:2015-09-15 17:50:06

标签: sql-server tsql

如何替换或删除另一列中找到的列中的数据?

我无法撤消或阻止数据的插入方式,我必须通过删除Address列中的所有数据来确定Place

预先计算的数据将此列填充为:

[Address] = '123 Main Street" + ': @McDonalds'

例如:

+----+-------------+-----------------------------+
| ID |    Place    |           Address           |
+----+-------------+-----------------------------+
|  1 | :@McDonalds | 123 Main Street: @McDonalds |
+----+-------------+-----------------------------+

我希望[Address]的内容仅为:

  

123 Main Street

1 个答案:

答案 0 :(得分:0)

一种选择: 找到"的索引后返回字符串的左侧部分:"字符。

UPDATE tbl
    SET
        [Address] = LEFT([Address], CASE WHEN CHARINDEX(':', [Address]) = 0 THEN
                      LEN([Address]) ELSE CHARINDEX(':', [Address]) - 1 END)

另一种选择:

UPDATE tbl
    SET
        [Address] = REPLACE([Address], [Place], '')

SQL Fiddle