SQL Server 2005에서 일부 CML 구문을 빌려 쓰겠습니다. 이렇게하기 위해 모든 값을 varchar로 변경합니다. 문제는 내가이 값들을 USE로 만들고 싶을 때 10 진수로 변환해야 할 때 발생한다.'null'varchar를 십진수로 변환
그래서, 내 XML 코드는 다음과 같습니다 : VAL가 null의 경우
set @result = @result + <VAL>' + coalesce(cast(@val as varchar(20)), '-.11111') + '</VAL>'
이 방법은, 내가 특별한 소수를 반환하고 그 진수를 확인할 수 있습니다. 성능 때문에
case when cast(InvestmentReturn.fn_getSTRUCT(...args...).value('results[1]/VAL[1]', 'varchar(40)')as decimal(10,5)) = -.11111
:이 일의 단점은, 내가 값을 사용할 때 내가, 내가이 같은 0 에 값이 동일 변환 있는지 확인해야 다른 쪽 끝 유착을 사용할 수 없다는 것입니다 이제는 성능을 향상시킬 수있는 방법 중 하나가 중첩 된 case 문을 사용하고 내 특별 'null'과 동등한 값을 검사하는 대신 병합을 사용하는 것일 수 있다고 생각했습니다.
의견이 있으십니까?
또한, 나는 선택 캐스트 (십진수로 '널 (null)이'(10,5)가) 나에게주는 것을 볼 수 :
Msg 8114, Level 16, State 5, Line 1
Error converting data type varchar to numeric.