我有一个包含多个varchar
列的表,这些列与我在另一个表中的主键几乎相同,但句点(.
)除外。我查看了T-SQL中的replace
函数,但第一个参数不是表达式。如何使用SQL删除所有出现的特定字符?似乎正确的答案可能是用零长度字符串替换。那是关闭吗?
对于那些没有表现出研究成果的人来说,这主要是由于对文档本身的误解。
答案 0 :(得分:43)
您可以使用列值上的REPLACE
直接更新表格:
UPDATE myTable
SET myColumn = REPLACE(myColumn, '.', '')
答案 1 :(得分: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
编辑,让这个例子变得更有用,因为无论如何我都玩了它,我不妨发布这个例子。 :)
答案 2 :(得分:6)
update your_table
set some_column = replace(some_column, '.', '')