> 데이터 베이스 > MySQL 튜토리얼 > SQL의 문자열에서 숫자 값을 어떻게 추출할 수 있습니까?

SQL의 문자열에서 숫자 값을 어떻게 추출할 수 있습니까?

Patricia Arquette
풀어 주다: 2025-01-21 01:36:08
원래의
442명이 탐색했습니다.

How Can I Extract Numeric Values from Strings in SQL?

문자열에서 숫자 데이터 추출

데이터베이스 환경에서는 문자열에 포함된 숫자 데이터를 추출해야 할 수도 있습니다. 다음 예를 고려해보세요.

<code>字符串 1: 003Preliminary Examination Plan   
字符串 2: Coordination005  
字符串 3: Balance1000sheet</code>
로그인 후 복사

원하는 결과는 각 문자열에서 숫자만 추출하는 것입니다.

<code>字符串 1: 003
字符串 2: 005
字符串 3: 1000</code>
로그인 후 복사

이를 SQL로 구현하려면 사용자 정의 사용자 정의 함수(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
GO</code>
로그인 후 복사

이 UDF는 본질적으로 입력 문자열에서 숫자가 아닌 모든 문자를 식별하고 제거합니다. 그런 다음 결과 문자열을 정수로 변환할 수 있는지 확인하고 그에 따라 반환합니다.

이 기능을 사용하려면 해당 열에 적용하면 됩니다.

<code class="language-sql">SELECT dbo.udf_GetNumeric(column_name) 
from table_name</code>
로그인 후 복사

지정된 열에 있는 문자열의 숫자 부분만 반환합니다. 제공된 예시 데이터의 경우 결과는 예상 값과 일치합니다.

<code>003
005
1000</code>
로그인 후 복사

참고: 원본 코드의 RETURN 문에 문법 오류가 있었는데, 불필요한 중첩 및 유형 변환 문제를 피하기 위해 보다 간결하고 효과적인 RETURN ISNULL(TRIM(@strAlphaNumeric), '0')으로 수정되었습니다. 이 개정된 기능은 더 명확하고 이해 및 유지 관리가 더 쉽습니다.

위 내용은 SQL의 문자열에서 숫자 값을 어떻게 추출할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿