您的位置:首页 > 其它

大家帮我看看这个语句怎么写?

2013-09-05 14:52 316 查看
大家帮我看看这个语句怎么写?

表A:
PID NAME
1   湖北
2   湖南
3   河南

表B:
ID PID  CITYNAME STARTTIME ENDTIME
1  1     武汉     00:80    18:00
2  1     十堰     18:00    23:59
3  1     黄石     00:00    23:59
4  2     ...       ...      ...

我要得到的结果是:
PID NAME      DESC
1   湖北     武汉(00:80-18:00);十堰(18:00-23:59);黄石(00:00-23:59)
2   湖南     ...
3   河南     ...

解答:

WITH TEMP AS(  
  SELECT 'CHINA' NATION ,'GUANGZHOU' CITY,'00:00' STARTTIME,'00:80' ENDTIME FROM DUAL UNION ALL  
  SELECT 'CHINA' NATION ,'SHANGHAI' CITY,'00:10' STARTTIME,'01:80' ENDTIME FROM DUAL UNION ALL  
  SELECT 'CHINA' NATION ,'BEIJING' CITY,'00:20' STARTTIME,'02:80' ENDTIME FROM DUAL UNION ALL  
  SELECT 'USA' NATION ,'NEW YORK' CITY,'00:30' STARTTIME,'03:80' ENDTIME FROM DUAL UNION ALL  
  SELECT 'USA' NATION ,'BOSTOM' CITY,'00:40' STARTTIME,'04:80' ENDTIME FROM DUAL UNION ALL  
  SELECT 'JAPAN' NATION ,'TOKYO' CITY,'00:50' STARTTIME,'05:80' ENDTIME FROM DUAL   
)  
SELECT NATION,LISTAGG(CITY||'('||STARTTIME||'-'||ENDTIME||')',';') WITHIN GROUP (ORDER BY CITY)  
FROM TEMP  
GROUP BY NATION

http://www.2cto.com/database/201210/161494.html
http://xpchild.blog.163.com/blog/static/10180985920108485721969/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: