我有这个old_table。
ID: First_name: Last_name: Age:
1 Christian Johnson 25
2 John Christiansen 21
3 <NULL> Peterson 23
和我刚创建的new_table,通过这段代码:
CREATE TABLE new_table (ID integer, name text, age text);
INSERT INTO new_table (ID, name, age) SELECT ID, First_name, age FROM old_table;
返回了:
ID Name: Age:
1 Christian 25
2 John 21
3 <NULL> 23
但如果遇到NULL值,我会喜欢我的代码插入lastname。所以在伪代码中;
(...) SELECT ID, First_name IF NULL last_name, age FROM old_table;
IF NULL last_name不起作用。
答案 0 :(得分:2)
您正在寻找COALESCE()
,它会返回遇到的第一个非空值:
INSERT INTO new_table (ID, name, age)
SELECT ID, COALESCE(First_name, Last_name), age FROM old_table;
答案 1 :(得分:1)
查询:
INSERT INTO new_table (ID, name, age) SELECT ID, COALESCE(First_name,Last_name), age FROM old_table;
COALESCE
将浏览列出的值并选择第一个不是NULL
的值ISNULL
或IVNL
等可移植代码。