1

SQLの文字列からすべての特殊文字を削除したいと思います。サブストリングメソッドを使用して特定の量の文字を削除する人をたくさん見ましたが、この場合、ストリングの両側の長さは不明です。

誰もがこれを行う方法を知っていますか?

4

4 に答える 4

1

関数を使用replaceすると役立ちます

つまり、特殊文字を削除したい場合は、このスペース ' ' を置換機能を使用して置き換えます

置換の詳細: http://technet.microsoft.com/en-us/library/ms186862.aspx

于 2010-05-20T05:03:26.953 に答える
1

MS SQL では、これによりすべてのプラス記号が削除されます。

SELECT REPLACE(theField, '+', '') FROM theTable

それはあなたが必要とするようなものですか?

于 2010-05-20T05:21:23.027 に答える
1

任意の文字を LEFT トリミングするためにこの関数を作成しました

CREATE FUNCTION TRIMCHAR
(
    -- Add the parameters for the function here
     @str varchar(200) ,  @chartotrim varchar(1)
)
RETURNS  varchar(200)  
AS
BEGIN



DECLARE @temp varchar(2000)

SET  @temp = @str   

WHILE  CHARINDEX (  @chartotrim  ,  @temp )  =1
BEGIN


SET @temp  = RIGHT( @temp , LEN(@temp)-1) 

END 


RETURN   @temp 

END
GO
于 2016-02-04T23:09:13.237 に答える
0
USE [YourDataBase]
GO
/****** Object:  UserDefinedFunction [Accounts].[fn_CurrentFeeorArrears]    Script Date: 02/18/2014 12:54:15 ******/
/*****Developed By rameez****/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [FN_REMOVE_SPECIAL_CHARACTER] 
(  
 @INPUT_STRING varchar(300))
RETURNS VARCHAR(300)
AS 
BEGIN

--declare @testString varchar(100),
DECLARE @NEWSTRING VARCHAR(100) 
-- set @teststring = '@ram?eez(ali)'
 SET @NEWSTRING = @INPUT_STRING ; 
With SPECIAL_CHARACTER as
(
--SELECT '>' as item
--UNION ALL 
--SELECT '<' as item
--UNION ALL 
--SELECT '(' as item
--UNION ALL 
--SELECT ')' as item
--UNION ALL 
--SELECT '!' as item
--UNION ALL 
--SELECT '?' as item
--UNION ALL 
--SELECT '@' as item
--UNION ALL 
--SELECT '*' as item
--UNION ALL 
--SELECT '%' as item
--UNION ALL 
SELECT '$' as item
 )
SELECT @NEWSTRING = Replace(@NEWSTRING, ITEM, '') FROM SPECIAL_CHARACTER  
return @NEWSTRING 
END
select dbo.[FN_REMOVE_SPECIAL_CHARACTER] ('r$@ameez')
于 2014-02-18T07:59:33.977 に答える