0

これを使用して 2 つのテーブルを結合しています (ここではいくつかのフィールドを省略しています)。元のテーブルのフィールドはすべて VARCHAR、NOT NULL として定義され、デフォルトは '' です。

  CREATE TABLE newtable
  SELECT
     table1.field1,
     table1.field2,
     ...
     table2.field1,
     table2.field2,
     ...
 FROM
    table1
 LEFT JOIN table2 ON table1.id = table2.id

結合自体は機能していますが、テーブル 1 にはテーブル 2 にない行がいくつかあります。空の文字列にする必要がある場合、テーブル 2 のフィールドはこれらのエントリに NULL として追加されています。テーブルを作成するときにそれを行う方法はありますか?

4

2 に答える 2

1
IFNULL(table1.field1,'') AS table1_field1,

IFNULLnull でない場合は値を残します。それ以外の場合は、2 番目のパラメーターに置き換えます。この場合は空の文字列です。

于 2012-11-28T22:24:18.567 に答える
1

table2 の列を '' にしたい場合は、nvl を入力してください。これは oracle で機能します

CREATE TABLE newtable as 
  SELECT
     table1.field1,
     table1.field2,
     ...
     nvl(table2.field1,''),
     nvl(table2.field2,''),
     ...
 FROM
    table1
 LEFT JOIN table2 ON table1.id = table2.id
于 2012-11-29T11:42:32.143 に答える