SQL 문자열에서 숫자 추출
질문:
주어진 문자열에서 숫자 값만 추출하는 SQL 쿼리를 작성하세요. 예를 들어 입력 문자열 "003Preliminary Examination Plan", "Coordination005" 및 "Balance1000sheet"가 있는 경우 원하는 출력은 각각 "003", "005" 및 "1000"입니다.
해결책:
이 작업을 수행하기 위해 사용자 정의 함수(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), '') END GO</code>
이제 쿼리에 이 UDF를 사용할 수 있습니다.
<code class="language-sql">SELECT dbo.udf_GetNumeric(column_name) FROM table_name</code>
이 고급 방법은 SQL의 문자열에서 숫자 값을 효율적으로 추출합니다. 이 수정된 UDF는 null 값과 숫자가 아닌 문자만 포함된 경우를 처리하여 0 대신 빈 문자열을 반환합니다.
위 내용은 SQL을 사용하여 문자열에서 숫자를 추출하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!