【发布时间】:2015-04-22 00:40:53
【问题描述】:
我目前有一个user_addresses 表:
id | name | address_type | address
---+------+--------------+----------
1 | John | HOME | home addr
1 | John | MAIL | mail addr
2 | Bill | HOME | home addr
3 | Rick | HOME | home addr
3 | Rick | MAIL | mail addr
我想构建一个使用user_addresses 表中的数据的新视图。当address_type=MAIL 时,它应该在address 字段中使用他们的邮件地址。否则它使用他们的home 地址:
id | name | address_type | address | data from other tables
---+------+--------------+-----------+-----------------------
1 | John | MAIL | mail addr |
2 | Bill | HOME | home addr |
3 | Rick | MAIL | mail addr |
我目前正在扁平化user_addresses 表,因此用户是一行,并且他们在自己的列中有家庭/邮件地址。然后我从这个新的扁平视图中选择并做一个案例陈述:
case when mail_address is not null then mail_address else home_address end
我应该使用max(case when)、联合/减号还是其他什么?完成此任务的最佳方法是什么?
【问题讨论】:
-
当你尝试这些时发生了什么?
标签: sql oracle plsql oracle11g