【发布时间】:2009-06-11 20:17:48
【问题描述】:
如何从 SQL Server 中的字符串中删除一个值?
【问题讨论】:
标签: sql sql-server
如何从 SQL Server 中的字符串中删除一个值?
【问题讨论】:
标签: sql sql-server
这是使用REPLACE 函数完成的
在 SELECT 查询中从“SomeTable”中的“SomeColumn”中去除“somestring”:
SELECT REPLACE([SomeColumn],'somestring','') AS [SomeColumn] FROM [SomeTable]
更新表格并从“SomeTable”中的“SomeColumn”中删除“somestring”
UPDATE [SomeTable] SET [SomeColumn] = REPLACE([SomeColumn], 'somestring', '')
【讨论】:
在有问题的列上使用“REPLACE”字符串函数:
UPDATE (yourTable)
SET YourColumn = REPLACE(YourColumn, '*', '')
WHERE (your conditions)
将“*”替换为您要删除的字符,并指定您的 WHERE 子句以匹配您要应用更新的行。
当然,也可以使用 REPLACE 函数 - 正如其他回答者所显示的那样 - 在 SELECT 语句中 - 从您的问题来看,我假设您正在尝试更新表。
马克
【讨论】:
看看下面的函数 - REPLACE():
select replace(DataColumn, StringToReplace, NewStringValue)
//example to replace the s in test with the number 1
select replace('test', 's', '1')
//yields te1t
http://msdn.microsoft.com/en-us/library/ms186862.aspx
编辑
如果要删除字符串,只需使用带有空字符串的替换函数作为第三个参数,例如:
select replace(DataColumn, 'StringToRemove', '')
【讨论】:
UPDATE [TableName]
SET [ColumnName] = Replace([ColumnName], '[StringToRemove]', '[Replacement]')
在你的例子中是
UPDATE [TableName]
SET [ColumnName] = Replace([ColumnName], '[StringToRemove]', '')
因为没有替代品(你想摆脱它)。
这将在指定表的每一行上运行。除非您只想指定某些行,否则不需要 WHERE 子句。
【讨论】: