>데이터 베이스 >MySQL 튜토리얼 >SQL 사용자 정의 함수를 사용하여 문자열에서 숫자를 추출하려면 어떻게 해야 합니까?

SQL 사용자 정의 함수를 사용하여 문자열에서 숫자를 추출하려면 어떻게 해야 합니까?

Patricia Arquette
Patricia Arquette원래의
2025-01-21 01:47:08689검색

How Can I Extract Numbers from Strings Using a SQL User-Defined Function?

사용자 정의 함수를 사용하여 SQL의 문자열에서 숫자 데이터 추출

이 가이드에서는 문자열에서 숫자만 효율적으로 추출하기 위해 SQL 사용자 정의 함수(UDF)를 만드는 방법을 보여줍니다. 이는 데이터 정리 및 조작에서 흔히 발생하는 작업입니다.

UDF 만들기:

다음 SQL 코드는 문자열을 입력으로 사용하고 추출된 숫자 부분을 반환하는 dbo.udf_GetNumeric이라는 UDF를 정의합니다.

<code class="language-sql">CREATE FUNCTION dbo.udf_GetNumeric
(
  @strAlphaNumeric VARCHAR(256)
)
RETURNS VARCHAR(256)
AS
BEGIN
    DECLARE @intAlpha INT
    SET @intAlpha = PATINDEX('%[^0-9]%', @strAlphaNumeric)
    BEGIN
        WHILE @intAlpha > 0
        BEGIN
            SET @strAlphaNumeric = STUFF(@strAlphaNumeric, @intAlpha, 1, '' )
            SET @intAlpha = PATINDEX('%[^0-9]%', @strAlphaNumeric )
        END
    END
    RETURN ISNULL(TRIM(@strAlphaNumeric), '0')
END</code>

UDF 적용:

UDF가 생성되면 다음 SELECT 문을 사용하여 테이블의 열에 적용하세요.

<code class="language-sql">SELECT dbo.udf_GetNumeric(column_name) AS ExtractedNumber
FROM table_name;</code>

column_name을 문자열이 포함된 열의 실제 이름으로 바꾸고 table_name를 테이블 이름으로 바꿉니다. 결과는 숫자 값만 포함하는 새 열 ExtractedNumber이 됩니다.

예시:

다음 샘플 데이터를 고려해보세요.

String 1 String 2 String 3
003Preliminary Examination Plan Coordination005 Balance1000sheet

UDF를 적용한 후의 출력은 다음과 같습니다.

String 1 String 2 String 3
003 005 1000

기능 설명:

dbo.udf_GetNumeric 함수는 PATINDEX을 사용하여 숫자가 아닌 첫 번째 문자를 찾습니다. 그런 다음 STUFF 함수는 해당 문자를 제거합니다. 이 과정은 숫자가 아닌 문자가 모두 제거되고 숫자만 남을 때까지 반복됩니다. ISNULLTRIM 함수는 잠재적인 null 값과 선행/후행 공백을 처리합니다.

추가 개선 사항(향후 업데이트): 이 기능에 대한 더 자세한 설명과 잠재적인 개선 사항은 향후 업데이트에 추가될 예정입니다.

위 내용은 SQL 사용자 정의 함수를 사용하여 문자열에서 숫자를 추출하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.