64
A
回答
131
添加額外的列空的具有較少列的表像
Select Col1, Col2, Col3, Col4, Col5 from Table1
Union
Select Col1, Col2, Col3, Null as Col4, Null as Col5 from Table2
4
我來到這裏,跟着上面的回答。但數據類型順序不匹配導致錯誤。下面的描述來自另一個答案將派上用場。
上面的結果是否與表中列的順序相同?因爲oracle在列命令中是嚴格的。下面這個例子中產生一個錯誤:
create table test1_1790 (
col_a varchar2(30),
col_b number,
col_c date);
create table test2_1790 (
col_a varchar2(30),
col_c date,
col_b number);
select * from test1_1790
union all
select * from test2_1790;
ORA-01790:表達式必須具有相同的數據類型相應的表達
正如所看到的錯誤的根本原因是在被隱含的失配列順序通過使用*作爲列表說明符。這種類型的錯誤可以通過顯式輸入列清單很容易地避免:
選擇爲col_a,col_b,col_c從test1_1790 UNION ALL 選擇爲col_a,col_b,從test2_1790 col_c; 此錯誤的更頻繁的情況是,當你不經意地掉(或移位)兩列或多列在SELECT列表:
select col_a, col_b, col_c from test1_1790
union all
select col_a, col_c, col_b from test2_1790;
或者如果以上操作不解決您的問題,如何創建一個別名在這樣的列:(查詢是不一樣的你的,但這裏的關鍵是如何在列中添加別名)。
SELECT id_table_a,
desc_table_a,
table_b.id_user as iUserID,
table_c.field as iField
UNION
SELECT id_table_a,
desc_table_a,
table_c.id_user as iUserID,
table_c.field as iField
0
如果只有1列,可以使用加入
Select t1.Col1, t1.Col2, t1.Col3, t2.Col4, t2.Col5 from Table1 t1 join Table2 t2;
+0
兩個1行表(兩個多重關係,每個元組都有一個元組)的聯合在結果關係中有兩行(元組)。在關係代數(SQL不是)中,聯合結果_might_是一行,但只有兩個輸入關係包含相同的元組時,例如。一元關係的自我聯合。 –
相關問題
- 1. 聯合使用不同列的兩個火花數據幀
- 2. 兩個不同表的Sybase SQL聯合
- 3. 用表_name列聯合兩個表
- 4. 具有不同列的兩個表的SQL聯合
- 5. 使用LINQ加入/聯合兩個對象不同列
- 6. 使用SQL Server聯合50+具有不同列數的表格
- 7. SQL - 如何使用不同的兩列聯合查詢
- 8. 兩個鏈接列表的聯合 - C++
- 9. 兩個IEnumerable和IQueryable列表的聯合
- 10. 聯合在兩個選擇不同列數
- 11. 使用PowerShell將兩個與兩列不同的表結合使用
- 12. 如何聯合來自兩個不同數據庫的不同表格?
- 13. 兩個聯合使用stl的聯合計數元素
- 14. 結合使用不同列數的兩個查詢
- 15. 如何從聯合/聯合中選擇兩個不同表中的值?
- 16. 使用數組合並兩個不同的表
- 17. 從兩個不同的表加入兩個不同的列和合並重復
- 18. 如何使用不同的別名獲得兩個表的聯合
- 19. SQLITE3:使用多行的兩個不相關表的聯合
- 20. 如何使用相同的列名聯接兩個表
- 21. 聯合兩個陣列
- 22. 具有兩個表的聯合的列的SQL SUM不正確
- 23. 如何將不同列數的兩個表結合在一起?
- 24. 合併兩個包含不同數據的對象列表
- 25. 在選擇列表中聯合不同數量的列?
- 26. 聯合兩個表sqlite3
- 27. 聯合兩個不同列的表,並在輸出中顯示爲空
- 28. 比較兩個不同表中兩個不同的列和使用laravel 5.4
- 29. 聯合列表使用Linq列表
- 30. 聯盟合併不同列
有沒有辦法填補空列的默認值? – Hans
@Hans:您可以像ColumnName或者isnull(ColumnName,' - ')那樣將isnull(ColumnName,0)做成ColumnName或類似的東西。 – Kangkan
您也可以這樣做: select [Some custom value] as [Col1] ... –