2013-05-27 105 views
0

我正在爲在工作中的項目在Oracle中創建一個小型數據庫。其中一列需要記錄多個值。什麼是創建多值列的查詢?Oracle PLSQL中的多值列

+1

究竟是你想做些什麼?您是否試圖將分隔的項目存儲在單個列中?如果是這樣,不要 - 規範你的分貝。 – sgeddes

+0

你能精確的需要用例嗎? – igr

回答

4

如果您需要用戶輸入多個電子郵件地址,我會考慮創建一個USER_EMAIL表來存儲這些記錄。

Create Table User_Email (User_Id int, Email varchar(100)); 

USER_ID將是一個foreign key可以追溯到您USER表。

然後,您可以爲每個用戶設置1到n個電子郵件地址。這通常是數據庫規範化的最佳實踐。如果您的電子郵件有不同的類型(例如工作,個人等),那麼您可以在該表中爲該類型添加另一列。


如果你需要在一列返回行,然後你可以看看使用LISTAGG

select u.id, 
    listagg(ue.email, ', ') within group (order by ue.email) email_addresses 
from users u 
    left join user_email ue on u.id = ue.user_id 
group by u.id