2017-11-30 9 views
2

のヌルIDに対して '不明'を表示しますか?以下の構文を試してみましたが、エラー数値フィールドがNullの場合、文字列値を表示する方法は、

'エラー数値にデータ型varchar型に変換する' 取得:

構文:

select 
case 
when bill_area_id IS null then 'Unknown' 
else bill_area_id end from Table_name 
+1

'select coalesce(bill_area_id、 'Unkown')from tablename'は、同じデータ型が必要であることに注意してください。 – jarlh

+1

これらのタイプの決定は通常_display_レイヤーで行われます。つまり、_data_レイヤーではなくWebページ、app、レポートなどを意味します。 –

+0

DBMSに依存しないので、これは[SQL ServerでNULL値を '不明'として表示]の複製です(https://stackoverflow.com/questions/35092603/displaying-null-values-as-unknown -is-sql-server)、あるいはおそらく他の多くの質問が同じ効果を求めています。 –

答えて

1

使用​​3210最初の非null値を返すために:

select coalesce(bill_area_id, 'Unknown') from Table_name 

互換性のあるデータ型が必要です。私。あなたがしなければならないことがあります。あなたはsql serverを使用している場合

select coalesce(cast(bill_area_id as varchar(15)), 'Unknown') from Table_name 
0

、あなたもこれを使用することができます:

select isnull(cast(bill_area_id as varchar(15)), 'Unknown') from Table_name 
+0

dbmsが指定されていない質問に対する製品固有の回答。少なくとも、これがどのdbmsであるかを教えてください。 – jarlh

+0

さて、彼が試したことはすでにMySQLのために働いていると思います。 'Oracle'についてはわかりませんが、提供されたエラーメッセージを見ると、これはms sqlサーバーの問題だと思います。とにかくそれを答えで指定する方が良いです、それをキャッチするためにありがとう。 –

0

あなたが同じ列に数値出力とvarchar型を混合しているため、エラーがあります。たとえばSQL Serverの場合:私はvarchar型としてbill_area_idキャスト、または「不明」を選択していますので、

select 
case 
when bill_area_id IS null then 'Unknown' 
else CAST(bill_area_id as varchar) end from Table_name 

は(varchar型も)出力が均一にvarchar型であることを保証します。

COALESCE/isnullを使用しても有効ですが、これらの関数はNULL値の代替を提供するため、ここでは他の回答があります。

関連する問題