집 >데이터 베이스 >MySQL 튜토리얼 >SQL 사용자 정의 함수를 사용하여 문자열에서 숫자를 추출하려면 어떻게 해야 합니까?
사용자 정의 함수를 사용하여 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
함수는 해당 문자를 제거합니다. 이 과정은 숫자가 아닌 문자가 모두 제거되고 숫자만 남을 때까지 반복됩니다. ISNULL
및 TRIM
함수는 잠재적인 null 값과 선행/후행 공백을 처리합니다.
추가 개선 사항(향후 업데이트): 이 기능에 대한 더 자세한 설명과 잠재적인 개선 사항은 향후 업데이트에 추가될 예정입니다.
위 내용은 SQL 사용자 정의 함수를 사용하여 문자열에서 숫자를 추출하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!