[英]oracle union caluse: what happens if there is a column name mismatch
在oracle中,當我這樣做時:從table1中選擇table1.col1,從table2中選擇table2.col2
它給了我所有記錄的並集,結果列的名稱是col1。
由於列名不匹配,不應該拋出錯誤嗎?
只要列數據類型不匹配,列名將始終來自第一個查詢。 它不應該(並且,正如您所發現的那樣)不會拋出錯誤。
如果數據類型不匹配,即使可以進行隱式轉換,通常也會出現錯誤
SQL> /
select 1 a from dual union select '2' from dual
*
ERROR at line 1:
ORA-01790: expression must have same datatype as corresponding expression
SQL> /
select '1' a from dual union select 2 from dual
*
ERROR at line 1:
ORA-01790: expression must have same datatype as corresponding expression
union
不關心列名,它只關心列的數量,最終關心它們的類型。
通常,列的名稱來自union
的第一個查詢。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.