作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有人知道从 SQL Server 字段中删除标点符号的好方法吗?
我在想
UPDATE tblMyTable SET FieldName = REPLACE(REPLACE(REPLACE(FieldName,',',''),'.',''),'''' ,'')
但当我打算删除大量不同的字符时,这似乎有点乏味,例如:!@#$%^&*()<>:"
提前致谢
最佳答案
理想情况下,您可以使用应用程序语言(例如上面提到的 C# + LINQ)来执行此操作。
如果您想纯粹在 T-SQL 中完成此操作,一种使事情变得更整洁的方法是首先创建一个表来保存您想要删除的所有标点符号。
CREATE TABLE Punctuation
(
Symbol VARCHAR(1) NOT NULL
)
INSERT INTO Punctuation (Symbol) VALUES('''')
INSERT INTO Punctuation (Symbol) VALUES('-')
INSERT INTO Punctuation (Symbol) VALUES('.')
接下来,您可以在 SQL 中创建一个函数来删除输入字符串中的所有标点符号。
CREATE FUNCTION dbo.fn_RemovePunctuation
(
@InputString VARCHAR(500)
)
RETURNS VARCHAR(500)
AS
BEGIN
SELECT
@InputString = REPLACE(@InputString, P.Symbol, '')
FROM
Punctuation P
RETURN @InputString
END
GO
然后您可以在 UPDATE 语句中调用该函数
UPDATE tblMyTable SET FieldName = dbo.fn_RemovePunctuation(FieldName)
关于SQL Server : How do you remove punctuation from a field?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1818430/
我是一名优秀的程序员,十分优秀!