SQL ServerのTransact-SQLにて、text型やntext型の文字列が空文字であるかの判定方法です。
通常の統合を用いた判定
select * from table1 where textfield = ''
はtext,ntext型では用いることができません。
「データ型 ntext と varchar は equal to 演算子では互換性がありません。」のエラーが発生します。
そのため、text,ntext型の空文字列の判定は、文字列の長さでから文字列を判定します。
select * from table1 where DATALENGTH(textfield) = 0
DATALENGTH関数を用いてtext,ntextのフィールドの値の長さを求め、長さが0ならば空文字列(またはnull)と判定できます。
textfieldに何らかの値が入っているレコードを取得する場合のSQL例です。
select * from table1 where textfield is not null and DATALENGTH(textfield) > 0