需要帮助才能将2行显示为合并列
制作这张图片来说明问题
谢谢您的帮助
答案 0 :(得分:3)
如果您只需要2个城市,那么简单的可能就是使用分析函数:
select distinct studentname
, min(city) over ( partition by studentname ) as city1
, min(street1) over ( partition by studentname ) as street1
, case when min(city) over ( partition by studentname )
<> nvl( max(city) over ( partition by studentname ), 'x')
then max(city) over ( partition by studentname ) end as city2
, case when min(street) over ( partition by studentname )
<> nvl( max(street) over ( partition by studentname ), 'x')
then max(street) over ( partition by studentname ) end as street2
from my_table
虽然我必须补充一点,你可能不应该这样做。如果学生有3个地址会怎样?
答案 1 :(得分:2)
我认为你正在考虑的方式并不正确。
您应该为“Ted”返回2行,并使用您的视图/报告代码操作输出。如果您的需求发生变化,这将变得更加容易,并且可以让您更快地更改您的视图/报告。