9

このselectステートメントを使用して、電話番号がnullか空かを確認し、nullの場合は、「電話番号は利用できません」と返します。このような

SELECT 
      Name, 
      ISNULL(NULLIF(Phone, ''), 'No Phone Number is available') AS Phone
FROM Person

しかし、電話番号がnullまたは空の場合、「電話番号がありません」という全文が表示されません。最初の20文字だけが返されます。電話フィールドの長さも20です。したがって、これは電話フィールドの長さに応じてテキストを返すと思います。

フィールド長を変更せずにこれを修正する方法はありますか?

4

1 に答える 1

11

あなたは正しいです。

ISNULLは、最初のパラメーターのデータ型と長さを使用します。COALESCEは「最高の優先順位」を取ります。それで:

COALESCE(NULLIF(Phone, ''), 'No Phone Number is available') AS Phone

または

ISNULL(NULLIF(CAST(Phone as varchar(30)), ''), 'No Phone Number is available') AS Phone
于 2011-07-01T08:12:19.397 に答える