SQLserver分组排序

当我用group by 分组后用STRING_AGG函数拼接z字段。如何让字段最前面显示为吨的数值image.png

yzm233020 发布于 2022-7-13 14:08
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
Z4u3z1Lv6专家互助
发布于2022-7-13 14:11(编辑于 2022-7-13 14:42)

先排序 在string_agg

-------参考

SET NOCOUNT ON 

IF OBJECT_ID('TEMPDB..#TestTable') IS NOT NULL DROP TABLE #TestTable

CREATE TABLE #TestTable(

[A] [nvarchar](30) NULL,

[B] [nvarchar](30) NULL

);

with a as (

select '1' [a],'1吨' [B] union all

select '1' [a],'50米' [B] union all

select '1' [a],'4只' [B] union all

select '2' [a],'50米' [B] union all

select '2' [a],'10吨' [B] union all

select '2' [a],'4只' [B] union all

select '3' [a],'4只' [B] union all

select '3' [a],'1吨' [B] union all

select '3' [a],'50米' [B] union all

select '4' [a],'50米' [B] union all

select '4' [a],'4只' [B] union all

select '4' [a],'1吨' [B]

)

INSERT INTO #TestTable

SELECT * FROM A  ORDER BY A,(CASE WHEN B LIKE '%吨%' THEN 1 WHEN B LIKE '%米%' THEN 2  ELSE 3 END) asc

SELECT A,STRING_AGG(B,',') FROM #TestTable GROUP BY A

DROP TABLE #TestTable

image.png

最佳回答
0
CD20160914Lv8专家互助
发布于2022-7-13 14:13

你拼好后,还要单独列出吨前面的数字?就比如第一行   323.00吨XXXX内容   你还要一个单独是323的结果?

  • 2关注人数
  • 312浏览人数
  • 最后回答于:2022-7-13 14:42
    请选择关闭问题的原因
    确定 取消
    返回顶部