16

我有一个表,其中的几varchar列几乎与我在另一个表中的主键相同,但句点 ( .) 除外。我查看了replaceT-SQL 中的函数,但第一个参数不是表达式。如何使用 SQL 删除所有出现的特定字符?似乎正确的答案可能是用零长度字符串替换。这么近吗?

无论谁觉得这个问题没有表现出研究工作,这主要是由于对文档本身的误解。

4

3 回答 3

45

您可以直接使用REPLACE列值更新表:

UPDATE myTable
SET myColumn = REPLACE(myColumn, '.', '')
于 2012-06-07T19:37:44.877 回答
6

是否要删除 . 从字符串?如果是这样,你是对的REPLACE

DECLARE @Example TABLE
(
    Value VARCHAR(100)
)
INSERT @Example (Value)
VALUES ('Test.Value'), ('An.otherT.est')

SELECT
    REPLACE(Value, '.', '')
FROM
    @Example

-- Replace only the first '.'
SELECT
    STUFF(Value, CHARINDEX('.', Value, 0), 1, '')
FROM
    @Example

编辑,使示例更加有用,因为无论如何我都在玩它,我不妨发布示例。:)

于 2012-06-07T19:37:26.670 回答
6
update your_table
set some_column = replace(some_column, '.', '')
于 2012-06-07T19:38:15.723 回答