簡體   English   中英

oracle union caluse:如果列名不匹配會發生什么

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM