LENを呼び出す前にnullを確認する必要はありません。 LEN(@SomeVarcharParm)> 0を使用することができます。値がNULL、 ''、または ''の場合、falseを返します。これは、NULL> 0がfalseを返すためです。実行し、自分自身を参照してください:
SELECT
CASE WHEN NULL > 0 THEN 'NULL > 0 = true' ELSE 'NULL > 0 = false' END,
CASE WHEN LEN(NULL) > 0 THEN 'LEN(NULL) = true' ELSE 'LEN(NULL) = false' END,
CASE WHEN LEN('') > 0 THEN 'LEN('''') > 0 = true' ELSE 'LEN('''') > 0 = false' END,
CASE WHEN LEN(' ') > 0 THEN 'LEN('' '') > 0 = true' ELSE 'LEN('' '') > 0 = false' END,
CASE WHEN LEN(' test ') > 0 THEN 'LEN('' test '') > 0 = true' ELSE 'LEN('' test '') > 0 = false' END
おっと、私はそれを知っていたはずです。両方の答えが当然働きます。彼が最初に投稿して以来、受け入れられたジョーの答え。 –
デレクの答えに対するコメントを参照してください。 –