문제

SQL Server 2005를 사용하고 있습니다. 텍스트 열이있는 테이블이 있고이 열의 값이 Null이 아닌 테이블에 많은 행이 있습니다. `` '와 비교하려고 시도하면이 응답이 생성됩니다.

데이터 유형 텍스트와 Varchar는 연산자와 동일하지 않습니다.

텍스트 열의 값이 무효가 아닌지 여부를 결정하는 특수 기능이 있습니까?

도움이 되었습니까?

해결책

where datalength(mytextfield)=0

다른 팁

ISNULL(
case textcolum1
    WHEN '' THEN NULL
    ELSE textcolum1
END 
,textcolum2) textcolum1

실제로, 당신은 유사한 연산자를 사용하면됩니다.

SELECT * FROM mytable WHERE mytextfield LIKE ''

빈 값 만 얻으려면 (널 값이 아님) :

SELECT * FROM myTable WHERE myColumn = ''

NULL 및 빈 값을 모두 얻으려면 :

SELECT * FROM myTable WHERE myColumn IS NULL OR myColumn = ''

널 값만 얻으려면 :

SELECT * FROM myTable WHERE myColumn IS NULL

null 및 비어있는 것 외에 다른 값을 얻으려면 :

SELECT * FROM myTable WHERE myColumn <> ''


그리고 다른 유형의 검색에 비해 성능을 저하시키기 때문에 필요한 경우에만 문구를 사용하십시오.

나는이 게시물이 고대라는 것을 알고 있지만, 그것이 유용하다는 것을 알았습니다.

비 빈 텍스트 필드로 레코드를 반환하는 문제를 해결하지 못하므로 솔루션을 추가 할 것이라고 생각했습니다.

이것이 저를 위해 일한 절차입니다.

WHERE xyz LIKE CAST('% %' as text)

사용 데이터 길이 방법 : 예 :

SELECT length = DATALENGTH(myField)
FROM myTABLE

나는 테스트 할 것이다 서브 스트링(TextColumn, 0, 1)

NULL과 빈 문자열이 동일합니까? 만약 그렇다면, 나는 내 응용 프로그램에 로직을 포함시킬 것입니다 (또는 앱이 앱이 "상자 밖으로"인 경우 트리거를 포함하여 필드를 NULL 또는 '' '로 강요하지만 다른 것은 아닙니다. ''와 함께 갔다면 열을 무효로하지 않도록 설정할 수 있습니다. 단지 데이터-청소 성.

값이 널 또는 비어있는 경우 사전 정의 된 텍스트 ( "실험실 없음")를 표시하고 친구 가이 작업을 도와주고 싶었습니다.

StrengthInfo = CASE WHEN ((SELECT COUNT(UnitsOrdered) FROM [Data_Sub_orders].[dbo].[Snappy_Orders_Sub] WHERE IdPatient = @PatientId and IdDrugService = 226)> 0)
                            THEN cast((S.UnitsOrdered) as varchar(50))
                    ELSE 'No Labs Available'
                    END

둘 다해야합니다.

SELECT * FROM Table WHERE Text IS NULL or Text LIKE ''

IS NULL 연산자 사용 :

Select * from tb_Employee where ename is null

이 문제에 대한 대안으로 많은 답변이 있다는 것을 알고 있지만 @Ericique Garcia & @Uli Köhler와 함께 @Eric Z Beard & @Tim Cooper의 최상의 솔루션으로 찾은 것을 모으고 싶습니다.

아래 쿼리가 0이 아닌 1이 반환되기 때문에 공간 전용이 사용 사례 시나리오에서 비어있을 수 있다는 사실을 처리 해야하는 경우.

SELECT datalength(' ')

그러므로 나는 다음과 같은 것을 갈 것이다.

SELECT datalength(RTRIM(LTRIM(ISNULL([TextColumn], ''))))
SELECT * FROM TABLE
WHERE ISNULL(FIELD, '')=''

이 시도:

select * from mytable where convert(varchar, mycolumn) = ''

나는 당신을 도와주기를 바랍니다!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top