组合重复的行单元格

时间:2017-03-01 17:07:42

标签: sql sql-server

我有一行SQL导致2个重复的行可以是任何计数:

SELECT ATTR_VAL 
FROM [NDC_ATTR] 
WHERE field_id IN (144,225)

结果:

1 H400
2 TESTTEXT
3 A200
4 TxtTst
....

我试图将它们连接在一起,所以它们看起来像这样:

1 TESTTEXT[H400]
2 TxTTst[A200]
...

我这是我目前的尝试,主要是试图让他们在同一领域。

select 
    concat ([NDC_ATTR], ' ', [NDC_ATTR]) as newColumn
where 
    item_id = 185836
    and field_id in (144, 225);

但是,我收到一堆错误,说列名是错误的。

我认为这是因为两个细胞来自同一列。

我做错了什么以及如何解决?

编辑:返回数据:

enter image description here

2 个答案:

答案 0 :(得分:1)

没有发布任何表格架构,我只是在猜测:

select 
    a.item_id
  , attr_vals = concat(a.attr_val,' ',quotename(b.attr_val))
from ndc_attr as a
  inner join ndc_attr as b
    on a.item_id = b.item_id
      and a.field_id = 144
      and b.field_id = 225
where a.item_id = 185836

答案 1 :(得分:0)

按item_id分组轮播值

select concat (
        max(case field_id when 144 then [ATTR_VAL] end),
        ' ',
        max(case field_id when 255 then [ATTR_VAL] end)
        ) as newColumn
from NDC_ATTR
where field_id in (144, 225)
    and item_id = 185836
group by item_id;