Create function [dbo].[RemoveCharSpecialSymbolValue](@str varchar(500))
returns varchar(500)
begin
declare @startingIndex int
set @startingIndex=0
while 1=1
begin
set @startingIndex= patindex('%[^0-9.]%',@str)
if @startingIndex <> 0
begin
set @str = replace(@str,substring(@str,@startingIndex,1),'')
end
else break;
end
return @str
end
5条答案
按热度按时间xlpyo6sf1#
试试这个:
您可以创建SCALAR FUNCTION并传递此列
O/P
syqv5f0l2#
SQL Server现在支持
translate()
。这允许您执行以下操作:唯一的技巧是空格的替换字符串需要与您要查找的字符的长度完全相同。
2q5ifsrm3#
首先将所有不需要的字符替换为单个不需要的字符,然后将其替换为空白:
输出:
请参阅现场演示。
gcuhipw94#
检查这个链接,这一个为我工作的一个类似的问题,我需要删除字母字符和特殊字符,所以我只剩下数字。https://www.c-sharpcorner.com/blogs/how-to-remove-characters-special-symbol-from-string-using-sql-function
然后使用@Thiyagu选择函数(列)解决方案
elcex8rz5#
我使用了另一个功能。正常数字和大小写字母的否定。