2017-06-23 46 views
0
選択クエリに*私は単純に使用してのようにフィールド名がわからないとき場合にはnullを交換することは可能です

ちょうど空白はそれが

MS SQL

  • を選択してnull値を置き換えテーブル名
  • からCOLNAMEとしてのIsNull(COLNAME、 '')

MySQLの

  • COLNAME AS SELECT IFNULL(COLNAMEは、 '')テーブル名
  • から

IFNULL(expr1と、expr2の)

expr1がNULLでない場合、IFNULL()expr1のを返します。それ以外の場合はexpr2を返します。 IFNULL()は、使用されているコンテキストに応じて、数値または文字列の値を返します。

わからなくてもどうすればいいですか?

+0

'select *'と同じように、複数の列に関数を追加することはできません。 –

+0

未知の列に論理を付けるのは変わっていませんか? – ajreal

+0

@OtoShavadzeを書くことなくcolumn_name –

答えて

0

あなたは列名がわからない場合、あなたは例えば、最初にそのテーブルのすべての列を取得し、動的にSELECTクエリを生成する必要があります。:

SELECT column_name 
FROM information_schema.columns 
WHERE table_name = 'mytable'; 

これは、あなたの列を与えるだろう。リストを反復することができます。SELECTクエリをカンマで区切ってIFNULL(col, '')に区切って実行します。

もう1つの方法は、クエリにSELECT *を使用し、ユーザーインターフェイス/サービス層のnull/emptyの値を処理することです。

+0

これは二重頭痛と二重の仕事になり、クエリを2回実行すると多くの時間がかかります –

+0

しかし、これを達成するためのもう1つのアプローチが追加されました。 –