2010-08-19 64 views
2

無論如何,我可以將以下3個SQL查詢轉換爲單個查詢嗎?如何將這3個SQL查詢轉換爲一個?

insert into table1(Name,Age,Type) Select FirstName,Age,'Type1' FROM Table2 where Type='SK' 
insert into table1(Name,Age,Type) Select FirstName,Age,'Type23' FROM Table2 where Type='JK' 
insert into table1(Name,Age,Type) Select FirstName,45,'Type64' FROM Table2 where Type='YP' 

回答

10
insert into table1(Name,Age,Type) 
Select FirstName,Age,'Type1' FROM Table2 where Type='SK' 
union all 
Select FirstName,Age,'Type23' FROM Table2 where Type='JK' 
union all 
Select FirstName,45,'Type64' FROM Table2 where Type='YP' 
+2

簡約的設計 - 迄今爲止公佈答案的最佳答案。 – Russ 2010-08-19 14:57:25

6
insert into table1(Name,Age,Type) 
Select FirstName, 
     CASE WHEN Type = 'YP' THEN 45 ELSE Age END, 
     CASE WHEN Type = 'SK' THEN 'Type1' etc. 
FROM Table2 
where Type in ('SK', 'JK', 'YP') 

編輯:

這取決於這裏有多少種有。也許另一個存儲類型和相關文本的表(「類型」等)會更好,而不是一個巨大的情況。對於這個時代同樣的東西。

1

嘗試:

Insert table1(Name,Age,Type) 
    Select FirstName, 
     Case Type When 'YP' Then 45 Else Age End, 
     'Type' + Case Type 
        When 'SK' Then '1' 
        When 'JK' Then '23' 
        When 'YP' Then '64' End 
    From Table2 
    Where Type In ('SK', 'JK', 'YP') 
0

嘗試..

insert into table1(Name,Age,Type) 

(Select FirstName, 

    (case when type='YP' then 
    45 
    else 
    age 
    end) age, 

    (case when type='SK' then 
    'Type1' 
    when type='JK' then 
    'Type23' 
    when type='YP' then 
    'Type64' 
    end) type 
FROM Table2 where Type in ('SK','JK','YP'))