2012-06-07 2 views
1

에서 문자열의 시작과 끝에서 알파벳 문자를 제외하고 테이블 행에 ".", ";", ","등의 비 알파벳 문자로 시작하고 끝나는 데이터가 있어야합니다. 문자열에서 제거해야합니다. 어떻게해야합니까? 같은 패턴을 사용하여 각 패턴을 검색하고 필터해야합니다. 다른 더 좋은 방법이 있습니까?쿼리를 제거하려면 SQL Server

+0

시도한 내용을 게시 할 수 있습니까? –

답변

0

아래의 기능은 다른 비 알파벳 문자를 문자열에서 제거합니다.

IF object_id('dbo.GetAlphachars') is not NULL 
    DROP FUNCTION dbo.GetNumeric 
GO 

CREATE FUNCTION dbo.GetAlphachars (@strAlphachars VARCHAR(256)) 
RETURNS VARCHAR(256) 
AS 

BEGIN 
DECLARE @intAlpha INT 
SET  @intAlpha = PATINDEX('%[^a-z]%', @strAlphachars) 

BEGIN 
WHILE @intAlpha > 0 
BEGIN 
SET @strAlphachars = STUFF(@strAlphachars, @intAlpha, 1, '') 
SET @intAlpha = PATINDEX('%[^a-z]%', @strAlphachars) 
END 
END 
RETURN ISNULL(@strAlphachars ,0) 
END 
GO 

예.

CREATE table vish(val varchar(20)); 

INSERT into vish values('.,,.?ishhh>...,'); 

SELECT dbo.getalphachars(val) from vish; 

result 
------------ 
ishhh 
관련 문제