development

NTEXT 열을 상수 값과 비교하는 올바른 방법은 무엇입니까?

big-blog 2020. 12. 5. 10:06
반응형

NTEXT 열을 상수 값과 비교하는 올바른 방법은 무엇입니까?


내가 같은 것을 사용하면

[ntext2] <> '1,032.5',

이 오류가 발생합니다.

데이터 형식 ntext 및 varchar는 같지 않음 연산자에서 호환되지 않습니다.

최상의 솔루션은 비교가 모든 열 유형에 대해 동일한 방식으로 구현되는 경우입니다. (<> 연산자는 NVARCHAR 및 INT 모두에 적용 가능).


ntext데이터 유형은 찬성되지 않습니다 nvarchar(max)데이터 유형입니다. 테이블의 데이터 유형을 변경할 수 있다면 이것이 최상의 솔루션입니다. 그러면 varchar리터럴 과 비교하는 데 문제가 없습니다 .

그렇지 않으면 비교하기 전에 값을 캐스팅해야합니다.

cast([ntext2] as nvarchar(max)) <> '1,032.5'

유사한 데이터 유형 문제를 해결하는 nvarchar 리터럴 사용을 고려할 수도 있습니다.

cast([ntext2] as nvarchar(max)) <> N'1,032.5'

캐스트하지 않으려면 다음 MSDN 스레드에 설명 된대로 LIKE또는을 사용하여 일부 시나리오에서 얻을 수 있습니다 PATINDEX. http://social.msdn.microsoft.com/Forums/en-US/transactsql/thread/6bd4c661-ea0b -435f-af78-097e61549d41

와일드 카드가없는 LIKE 표현식은 (이 경우) 동등성 테스트와 거의 동일합니다.

이 경우 표현식은 다음과 같습니다.

[ntext2] NOT LIKE '1,032.5'

참고 URL : https://stackoverflow.com/questions/3543570/whats-the-right-way-to-compare-an-ntext-column-with-a-constant-value

반응형