从案例查询中消除null结果-源中没有null值



我正试图完成一个复杂的聚合和连接查询,以准备导入到网站的数据,将多个结果行和列聚合为每个ID的一行。

我几乎做到了,只是我得到了很多NULL结果,尽管在源数据中没有NULL值。

来源数据:

type>其他文本>[/tr>其他文本>[/tr>>>>
id value_1 value_2 value _3
x1 某些文本 其他文本 更多文本A2
x1 某些文本更多文本B1
x1 某些文本更多文本B2
x2 某些文本 其他文本 更多文本B1
x2 某些文本 其他文本 更多文本A2
x2 某些文本 其他文本 更多文本B1

您希望每个id有一行,因此,我将首先从selectgroup by子句中删除type。接下来,case表达式将进入聚合函数内部。因此:

select id,
string_agg(case when type = 'A2' then concat(cast(value_1 as nvarchar(max)), value_1, value_2, value_3) end, ',') as type_a2,
string_agg(case when type = 'B1' then concat(cast(value_1 as nvarchar(max)), value_1, value_2, value_3) end, ',') as type_b1
from mytable
group by id

相关内容

  • 没有找到相关文章

最新更新