Sql server 基于另一列值替换或删除列中的数据

Sql server 基于另一列值替换或删除列中的数据,sql-server,tsql,Sql Server,Tsql,如何替换或删除在另一列中找到的列中的数据 我无法撤消或阻止插入数据的方式,而是必须能够通过删除位置列中的所有数据来确定地址 预先计算的数据将此列填充为: [Address] = '123 Main Street" + ': @McDonalds' 例如: +----+-------------+-----------------------------+ | ID | Place | Address | +----+-------------

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

我无法撤消或阻止插入数据的方式,而是必须能够通过删除
位置
列中的所有数据来确定
地址

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

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

+----+-------------+-----------------------------+
| ID |    Place    |           Address           |
+----+-------------+-----------------------------+
|  1 | :@McDonalds | 123 Main Street: @McDonalds |
+----+-------------+-----------------------------+
我希望
[地址]
的内容仅为:

大街123号

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

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], '')

因此,您在不到一分钟的时间内发布了一个问题和两种方法。你真的需要帮助吗?最初我需要,并开始问这个问题,但我找不到一个适合我情况的答案。所以我决定使用这个功能(分享你的知识,问答式)并在我找到答案后发布一个答案来帮助他人。