如何复制字段的值,但仅复制其数字?
我正在创建一个用于全文搜索的计算列,并且我想将电话号码字段(为 varchar)中的值复制到其中,但不使用其格式 - 仅数字。在我的计算列公式中执行此操作的命令是什么?
谢谢你!
您将必须编写一个用户定义的函数来执行此操作。有几种方法可以做到这一点,这是我通过快速谷歌搜索找到的一种方法。
CREATE FUNCTION dbo.RemoveChars(@Input varchar(1000))
RETURNS VARCHAR(1000)
BEGIN
DECLARE @pos INT
SET @Pos = PATINDEX('%[^0-9]%',@Input)
WHILE @Pos > 0
BEGIN
SET @Input = STUFF(@Input,@pos,1,'')
SET @Pos = PATINDEX('%[^0-9]%',@Input)
END
RETURN @Input
END
警告:我不会将其放在大型表的 WHERE 条件中,或者放在返回数百万行的 SELECT 中,但它会起作用。
最终,您可能最好在应用程序的 UI 中删除非数字字符,而不是在数据库代码中删除非数字字符。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)