2015-06-29 26 views
0

我試圖創建一個表custom_table需要對SQL的詳細信息「和」條款

產品沒有價格列,並在PC和筆記本電腦沒有一個類型列。

所以我需要知道如何在這種情況下使用with clause創建表?

這裏是我的查詢

with custom_table(model,type,price) 
as 
(select model,type from product 
union 
select model,price from pc 
union 
select model,price from laptop) 
select * from custom_table 

回答

2

這是不符合公共表表達式有問題,但與工會的問題。
爲了使union語句正常工作,您必須具有相同數量的具有相同數據類型的列。
我的猜測是你需要像這樣的東西:

with custom_table(model,type,price) 
as 
(select model,type, null as price from product 
union 
select model, null, price from pc 
union 
select model, null, price from laptop) 

select * from custom_table