T-SQL에서 nvarchar 문자열을 정수로 변환하는 것은 데이터 조작에 매우 중요합니다. 그러나 숫자가 아닌 문자가 나타나면 이러한 변환이 실패할 수 있습니다. 이로 인해 변환 오류를 적절하게 처리해야 할 필요성이 높아집니다.
CASE WHEN 표현식은 이 시나리오를 처리하기 위한 강력한 메커니즘을 제공합니다. 구문은 다음과 같습니다.
CASE WHEN ISNUMERIC(@text) = 1 THEN CAST(@text AS INT) ELSE NULL END
작동 방법은 다음과 같습니다.
이 접근 방식을 사용하면 문자열에서 정수로의 변환이 성공할 경우 올바른 정수 값이 반환됩니다. 단, 숫자가 아닌 문자로 인해 변환에 실패하면 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() 함수는 다음을 제공합니다. 숫자 값을 확인하는 편리한 방법이므로 다음 사항을 알아두는 것이 중요합니다. 제한 사항:
이러한 제한에도 불구하고 CASE WHEN with ISNUMERIC() 및 CAST()는 문자열을 정수로 캐스팅하고 T-SQL에서 숫자가 아닌 사례를 처리하기 위한 실용적인 솔루션을 제공합니다.
위 내용은 숫자가 아닌 값을 처리하면서 T-SQL에서 NVARCHAR 문자열을 정수로 안전하게 캐스팅하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!