我正在使用它来连接两个表(这里省略了一些字段)。原始表中的所有字段都定义为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。创建表时有没有办法做到这一点?
答案 0 :(得分:1)
IFNULL(table1.field1,'') AS table1_field1,
IFNULL
如果它不为null则保留该值,否则将其替换为第二个参数,在您的情况下为空字符串
答案 1 :(得分: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