2014-07-15 17 views
0

我正在使用sql腳本將數據從一個表傳輸到另一個表。在我的父表中,我有一些列有常量聲明。我想這樣,而不是傳遞常量的值,它們的名稱應該被轉移。是否有可能使用SQL腳本?使用sql腳本在表中插入常量值

家長TBL

ID | NAME | COLOR_ID 
2 | test | 1 

我只想color_id通過sql腳本變爲綠色。

RECEIVING TBL

ID | NAME | COLOR 
2 | test | Green 

腳本

Insert in receiving_tbl(id, name, color) select (id, name, color_id) from parent_tbl 
+0

1 =綠色的信息在哪裏? – Serpiton

+0

@Serpiton是,1 =綠色,2 =紅色等 –

+1

顏色名稱是在哪裏定義的?還有另一個表,我認爲 – Serpiton

回答

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 
2

如果您的表格中存儲了您的顏色ID和名稱,可以通過在「名稱」表中加入連接輕鬆完成此操作。

但是,如果您沒有將此信息存儲在表中,則可以使用case statement創建此類邏輯。

CASE case_expression 
    WHEN when_expression_1 THEN commands 
    WHEN when_expression_2 THEN commands 
    ... 
    ELSE commands 
END CASE;