SQL输出中的格式问题

时间:2012-09-25 11:24:13

标签: sql

我在格式化查询输出时遇到问题:

  SELECT i.product AS "Product Line",
  COUNT(i.incident_id) "Count Of Tickets",
  TRUNC((SUM(NVL(RSSEC,0) - NVL(WCTSEC,0))/COUNT(i.incident_id)) / 86400)
  || ':'
  || TRUNC(MOD(((SUM(NVL(RSSEC,0) - NVL(WCTSEC,0))/COUNT(i.incident_id)) / 3600),24))
  || ':'
  || TRUNC(MOD(((SUM(NVL(RSSEC,0) - NVL(WCTSEC,0))/COUNT(i.incident_id)) / 60),60))
  || ':'
  || TRUNC(MOD((SUM( NVL(RSSEC,0) - NVL(WCTSEC,0))/COUNT(i.incident_id)),60)) AS "MTTR"
FROM info i; 

,其中 RSSEC-总RSeconds(类型编号)
WCTSEC-总W秒(类型号)

Current Output:
TTPLL       8   2:4:0:18
ASDASDADD   1   0:0:9:0
UASDF       2   0:0:0:8
ERTEU       4   0:3:0:46
Expected Output:
TTPLL       8   02:04:00:18
ASDASDADD   1   00:00:09:00
UASDF       2   00:00:00:08
ERTEU       4   00:03:00:46

有人可以帮助我实现上述格式吗?

请告诉我任何替代解决方案,以获得截断位置以外的输出格式。

提前致谢,

1 个答案:

答案 0 :(得分:0)

我不知道这是哪个RDBMS,所以我猜,但是这个怎么样?

  SELECT i.product AS "Product Line",
  COUNT(i.incident_id) "Count Of Tickets",
  RIGHT('0' || TRUNC((SUM(NVL(RSSEC,0) - NVL(WCTSEC,0))/COUNT(i.incident_id)) / 86400), 2)
  || ':'
  || RIGHT('0' || TRUNC(MOD(((SUM(NVL(RSSEC,0) - NVL(WCTSEC,0))/COUNT(i.incident_id)) / 3600),24)), 2)
  || ':'
  || RIGHT('0' || TRUNC(MOD(((SUM(NVL(RSSEC,0) - NVL(WCTSEC,0))/COUNT(i.incident_id)) / 60),60)), 2)
  || ':'
  || RIGHT('0' || TRUNC(MOD((SUM( NVL(RSSEC,0) - NVL(WCTSEC,0))/COUNT(i.incident_id)),60)), 2) AS "MTTR"
FROM info i;