문자열에서 숫자 데이터 추출
데이터베이스 환경에서는 문자열에 포함된 숫자 데이터를 추출해야 할 수도 있습니다. 다음 예를 고려해보세요.
<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 중국어 웹사이트의 기타 관련 기사를 참조하세요!