[英]oracle sql column alias
我有3個表A,B,c,我想加入這些表。 這些表具有公共列,例如id_no,order_no
我想編寫一個查詢,返回所有三個表的所有列,這些列的擴展名是tabA。,tabB。,tabC....。我不想手動指定所有列名。 這樣,我可以區分表之間的公共列。
select tabA.id_no, tabA.order_no, tabA....., tabB.id_no, tabB.order_no,tabB..., tabC.id_no, tabC.order_no,tabC..
from A tabA, B tabB, C tabC
where tabA.id_no = tabB.id_no
and tabB.id_no = tabC.id_no
您能否讓我知道如何在oracle sql中實現這一點。
您可以執行以下操作:
SELECT tabA.*, tabB.*, tabC.*
FROM a tabA INNER JOIN b tabB
ON tabA.id_no = tabB.id_no
INNER JOIN c tabC
ON tabB.id_no = tabC.id_no;
編輯
如果您只想獲取與三個表關聯的列的列表,並查看三個表中共有的列名,則可以嘗試如下操作:
SELECT column_name, COUNT(*), LISTAGG(table_name, ',') WITHIN GROUP ( ORDER BY table_name
FROM all_tab_columns
WHERE owner = '<table_owner>'
AND table_name IN ('A','B','C')
GROUP BY column_name;
注意: LISTAGG()
假定您使用的是Oracle 11g或更高版本; 在此之前,您可以使用未記錄的函數WM_CONCAT()
。
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.