从varchar字段SQL Server 2008中删除单个字符

woo*_*gie 15 t-sql sql-server-2008

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

对于那些没有表现出研究成果的人来说,这主要是由于对文档本身的误解.

Ode*_*ded 44

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

UPDATE myTable
SET myColumn = REPLACE(myColumn, '.', '')
Run Code Online (Sandbox Code Playgroud)


Jer*_*ore 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
Run Code Online (Sandbox Code Playgroud)

编辑,让这个例子变得更有用,因为无论如何我都玩了它,我不妨发布这个例子.:)


jue*_*n d 6

update your_table
set some_column = replace(some_column, '.', '')
Run Code Online (Sandbox Code Playgroud)