그래서 문자열에서 문자와 숫자가 아닌 모든 것을 제거하기 위해 MS SQL을 사용하여 첫 번째 재귀 적 udf를 만들려고합니다. 영문자가 아닌 문자를 제거하기위한 재귀 SQL UDF
이
이 게시물에 의해 영감을 얻었다 ( Replace with wildcard, in SQL)CREATE FUNCTION uf_RemoveNonAlphaNumericChar(
@p_CharIndex int,
@p_Value Varchar(max))
RETURNS varchar(max)
AS
BEGIN
SET @p_CharIndex = PATINDEX('%[^0-9,a-z]%', @p_Value)
SET @p_Value = STUFF(@p_Value,@p_CharIndex , 1, SPace(0))
IF @p_CharIndex > 0
BEGIN
EXEC @p_Value = uf_RemoveNonAlphaNumericChar @p_CharIndex = @p_CharIndex,
@p_Value = @p_Value
END
RETURN @p_Value
END
이 내가 XXX###YYYY
세에 부품이 될 수있는 문자열을 분할하기 위해 노력하고있어 더 큰 문제의 한 단계 일 때 일부 부품 수도 실종되었다.
그리고 나는 while 루프 (이 솔루션은 이미 존재하지만 느리게 실행)없이 이것을하려고합니다.
Patindex가 시작 위치에 있으면 (MS SQL에서) 이미 완료되었습니다. 물론, 그것은 또한별로 즐겁지 않을 것입니다. 또는 우스꽝스럽게 채워진 것처럼 ...
가 참고로'PATINDEX'가 시작 postition 수 있습니다 :'PATINDEX를 ('%의 [^ 0-9, AZ] %', SUBSTRING (@p_Value, 2, 99999))'는 문자 2의 검색을 문자열 – JNK