SQLServer で text型の項目の文字数を求める
SQLServerでのtext型は、2,147,483,647(2^31-1)バイト内の非Unicode可変長文字列型です。
このように大きなデータ型なので、文字数を求めるときに varchar型のように LEN関数が使えません。
しかし、text型でも 8000バイト以下なら、以下の感じで文字数を求めることができます。
サンプル(Message項目がtext型のケース)
SELECT LEN(CAST([Message] AS varchar(8000))) FROM [TmpTBL] ORDER BY LEN(CAST([Message] AS varchar(8000))) DESC
ちなみに、バイト数なら text型でも普通にDATALENGTH関数が使えます。
SELECT DATALENGTH([Message]) FROM [TmpTBL] ORDER BY DATALENGTH([Message]) DESC
尚、DESCは降順ソートです。
上記は、SQLServer2000でテストをしましたが、たぶん、SQLServer2005や2008でも同じだと思う。