如何显示标签

时间:2015-07-30 12:06:44

标签: mysql sql oracle

请告诉我如何在行中有条件地显示同一列中的值?例如:我有一个名为tags的表,其中有两列tag_id和tag_name。我希望tag_name中的值根据条件显示在next旁边。

tags

tag_id tag_name
1       abc 
2       xyz
3       def
4       ghi

要求tag_name:abc,ghi

1 个答案:

答案 0 :(得分:0)

如果您的RDBMS是MySQL:

select GROUP_CONCAT(tag_name)
from (
    select tag_id, tag_name, 1 as selector
    from tags
    where tag_id in (1, 4)
) as x    
group by selector

如果您的RDBMS是Oracle:

select LISTAGG(tag_name, ', ')
WITHIN GROUP (ORDER BY selector)
from (
  select tag_id, tag_name, 1 as selector
  from tags
  where tag_id in (1, 4)
)