2011-07-01 1 views
8

このselectステートメントでは、電話番号が空か空かをチェックし、そうであれば「No Phone Number is available」を返します。このようにSQL Server 2008 ISNULLとNULLIFを使用すると戻り値が小さくなる

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

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

+0

テキストエディタでそれらの行をハイライト表示し、「コードサンプル」ボタンをクリックしてください( '{ } ')をエディタのツールバーに表示して、書式を整えて構文をハイライト表示します! –

答えて

9

あなたは正しいですか?

ISNULLは、最初のパラメータのデータ型と長さを使用します。 COALESCEは「最優先」を採用しています。だから、:あなたは、コード、XMLまたはデータサンプルを投稿する場合は、** **

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

それとも

ISNULL(NULLIF(CAST(Phone as varchar(30)), ''), 'No Phone Number is available') AS Phone 
関連する問題