> 데이터 베이스 > MySQL 튜토리얼 > 숫자가 아닌 값을 처리하면서 T-SQL에서 NVARCHAR 문자열을 정수로 안전하게 캐스팅하려면 어떻게 해야 합니까?

숫자가 아닌 값을 처리하면서 T-SQL에서 NVARCHAR 문자열을 정수로 안전하게 캐스팅하려면 어떻게 해야 합니까?

DDD
풀어 주다: 2024-12-28 08:12:13
원래의
602명이 탐색했습니다.

How Can I Safely Cast NVARCHAR Strings to Integers in T-SQL, Handling Non-Numeric Values?

T-SQL 변환: 기본값 또는 NULL 처리를 사용하여 문자열을 정수로 변환

T-SQL에서 nvarchar 문자열을 정수로 변환하는 것은 데이터 조작에 매우 중요합니다. 그러나 숫자가 아닌 문자가 나타나면 이러한 변환이 실패할 수 있습니다. 이로 인해 변환 오류를 적절하게 처리해야 할 필요성이 높아집니다.

해결책

CASE WHEN 표현식은 이 시나리오를 처리하기 위한 강력한 메커니즘을 제공합니다. 구문은 다음과 같습니다.

CASE WHEN ISNUMERIC(@text) = 1 THEN CAST(@text AS INT) ELSE NULL END
로그인 후 복사

작동 방법은 다음과 같습니다.

  • ISNUMERIC(): 이 함수는 nvarchar 문자열 @text가 유효한 숫자 값. 1(true)을 반환하면 문자열은 숫자입니다.
  • CAST(): ISNUMERIC()가 true를 반환하면 문자열은 CAST()를 사용하여 정수로 변환됩니다. 그렇지 않은 경우 결과는 NULL로 설정됩니다.

이 접근 방식을 사용하면 문자열에서 정수로의 변환이 성공할 경우 올바른 정수 값이 반환됩니다. 단, 숫자가 아닌 문자로 인해 변환에 실패하면 NULL 값이 반환됩니다.

샘플 코드

DECLARE @text AS NVARCHAR(10)

-- Numeric string
SET @text = '100'
SELECT @text, CASE WHEN ISNUMERIC(@text) = 1 THEN CAST(@text AS INT) ELSE NULL END

-- Non-numeric string
SET @text = 'XXX'
SELECT @text, CASE WHEN ISNUMERIC(@text) = 1 THEN CAST(@text AS INT) ELSE NULL END
로그인 후 복사

제한 사항

ISNUMERIC() 함수는 다음을 제공합니다. 숫자 값을 확인하는 편리한 방법이므로 다음 사항을 알아두는 것이 중요합니다. 제한 사항:

  • 통화 기호($), 소수 구분 기호(,), 천 단위 구분 기호(.) 및 산술 기호(및 -)가 포함된 문자열에 대해 true를 반환합니다.
  • 정수와 소수 등의 기타 숫자 데이터 유형을 구분하지 않습니다.

이러한 제한에도 불구하고 CASE WHEN with ISNUMERIC() 및 CAST()는 문자열을 정수로 캐스팅하고 T-SQL에서 숫자가 아닌 사례를 처리하기 위한 실용적인 솔루션을 제공합니다.

위 내용은 숫자가 아닌 값을 처리하면서 T-SQL에서 NVARCHAR 문자열을 정수로 안전하게 캐스팅하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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