如何将旧 table 的替代值插入新 table IF NULL。
How to insert an alternative value from an old table into a new table IF NULL.
我有这个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 值时插入姓氏。所以在伪代码中;
(...) SELECT ID, First_name IF NULL last_name, age FROM old_table;
IF NULL last_name 不起作用。
您正在寻找 COALESCE()
,returns 它遇到的第一个非空值:
INSERT INTO new_table (ID, name, age)
SELECT ID, COALESCE(First_name, Last_name), age FROM old_table;
查询:
INSERT INTO new_table (ID, name, age) SELECT ID, COALESCE(First_name,Last_name), age FROM old_table;
COALESCE
将遍历列出的值并选择第一个不是 NULL
它比 ISNULL
或 IVNL
等更可移植的代码
我有这个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 值时插入姓氏。所以在伪代码中;
(...) SELECT ID, First_name IF NULL last_name, age FROM old_table;
IF NULL last_name 不起作用。
您正在寻找 COALESCE()
,returns 它遇到的第一个非空值:
INSERT INTO new_table (ID, name, age)
SELECT ID, COALESCE(First_name, Last_name), age FROM old_table;
查询:
INSERT INTO new_table (ID, name, age) SELECT ID, COALESCE(First_name,Last_name), age FROM old_table;
COALESCE
将遍历列出的值并选择第一个不是 NULL
它比 ISNULL
或 IVNL
等更可移植的代码