我正在使用sql脚本将数据从一个表传输到另一个表。在我的父表中,我有一些声明了常量的列。我想要的是,而不是传递常量的值,而应该转移他们的名称。是否可以使用sql脚本?
父母TBL
ID | NAME | COLOR_ID
2 | test | 1
我只想通过sql脚本将color_id
更改为绿色。
收到TBL
ID | NAME | COLOR
2 | test | Green
脚本
Insert in receiving_tbl(id, name, color) select (id, name, color_id) from parent_tbl
答案 0 :(得分:2)
如果数据库中未定义颜色名称,唯一的选择是定义CASE
以将ID转换为名称,例如
INSERT INTO receiving_tbl(id, name, color)
SELECT id, name
, CASE color_id WHEN 1 THEN 'Green'
WHEN 2 THEN 'Red'
...
ELSE NULL
END
FROM parent_tbl
答案 1 :(得分:2)
如果您的表格中存储了您的颜色ID和名称,您可以通过在" name"中添加联接来轻松完成此操作。表
但是,如果您没有将此信息存储在表格中,则可以使用case statement创建此类逻辑。
CASE case_expression
WHEN when_expression_1 THEN commands
WHEN when_expression_2 THEN commands
...
ELSE commands
END CASE;