我必须使用特定的名称对行进行分组,而不会丢失特定列中的差异。
使用这样的查询,即搜索医疗过程和可以执行它们的每个结构:
选择名字,..。表(各种联接),其中STRUCTURE_CODE IN ('0123456','0999912')
| NAME | STRUCTURE_CODE | AGE_LIMIT | BIRTHPLACE_LIMIT |
|-------------------------------------------------------------------|
|RX ABS | 0123456 | NULL | NULL |
|RX ABS | 0999912 | 50 | NULL |
|HEAD RESONANCE | 0999912 | NULL | NULL |
|ABS RESONANCE | 0123456 | 30 | NULL |
|ABS RESONANCE | 0999912 | NULL | ROME |
|-------------------------------------------------------------------|(注:头部共振仅由结构0999912进行)
由于连接和结果列,查询以相同的名称复制行,因为其他一些列具有不同的值(如AGE_LIMIT等.)。
我必须在web上为每个不同的名称显示一行,然后指定每个结构的限制(如果有的话)。我可以接受这样的字符串:
| NAME | AGE_LIMIT | BIRTHPLACE_LIMIT |
|----------------------------------------------------------------------------------------|
|RX ABS | 0123456.NULL;0999912.50 | 0123456.NULL;0999912.NULL |
|HEAD RESONANCE | 0999912.NULL; | 0999912.NULL; |
|ABS RESONANCE | 0123456.30;0999912.NULL | 0123456.NULL;0999912.ROME |
|----------------------------------------------------------------------------------------|Java将在呈现网页之前,将连接的字符串以更易读的方式进行转换。
这是可能的还是你认为还有另一种优雅的解决方案?
谢谢。
发布于 2016-05-20 11:41:12
SELECT
NAME,
LISTAGG(STRUCTURE_CODE||'.'||AGE_LIMIT , ',') WITHIN GROUP (ORDER BY STRUCTURE_CODE) AS AGE_LIMIT ,
LISTAGG(STRUCTURE_CODE||'.'||BIRTHPLACE_LIMIT , ',') WITHIN GROUP (ORDER BY STRUCTURE_CODE) AS BIRTHPLACE_LIMIT
FROM "TABLE" GROUP BY NAMEhttps://stackoverflow.com/questions/37344171
复制相似问题