Sql 组合重复行单元格

Sql 组合重复行单元格,sql,sql-server,Sql,Sql Server,我有一行SQL,它会导致两个重复行,可以是任意计数: 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], '

我有一行SQL,它会导致两个重复行,可以是任意计数:

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);
然而,我得到了一堆错误,说列名是错误的

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

我做错了什么?我如何修复它

编辑:返回数据:


按项目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;

没有发布任何表模式,我只是在这里猜测:

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

您缺少来自子句的
。您需要一个
JOIN
来标识要连接的两个记录。您能扩展示例以显示您试图使用的逻辑吗?--另外,您仍然不能使用
concat()
表,最后一次查询需要一个
from
子句。您的
from
Select
中的哪里?我已经修复了查询。此外,我还展示了数据是如何进入的图片。我希望将每2行合并为1行。我认为,尽管您需要另一个键列,例如field_id[NDC_ATTR]不是列名,而是表名。根据您的第一次选择更正