반응형
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'
반응형
'development' 카테고리의 다른 글
C ++ 정적 초기화 순서 (0) | 2020.12.05 |
---|---|
정적 C ++ 클래스 멤버는 언제 초기화됩니까? (0) | 2020.12.05 |
Android 작업 표시 줄의 메뉴 항목 스타일을 지정하는 방법 (0) | 2020.12.05 |
Angular.js를 통한 세션 유지 (0) | 2020.12.05 |
사전에 전달 된 모델 항목의 유형은 ..이지만이 사전에는 유형의 모델 항목이 필요합니다. (0) | 2020.12.05 |