当前位置: 首页 > article >正文

【.net core】【sqlsugar】字符串拼接+内容去重

 假设有成绩类,字段如下

//成绩类
public class Score{
    public int id{get;set;}
    //学号
    public string No{get;set;}
    //学科
    public string subject{get;set;}
    //成绩
    public string score{get;set;}
}

需要实现数据汇总,汇总要求:结果中每行只展示单一学生信息,成绩结果进行字符串拼接显示在一个字段中

实现:

//使用sqlsugar

db.Queryable<Score>()
    .GroupBy(a => a.No)
    .Select<Score>(a => new ShopdetailEntity()
    {
        No= a.No,
        score= SqlFunc.Subqueryable<Score>().Where(z => z.No== a.No)
                   .SelectStringJoin(z => SqlFunc.MappingColumn<string>($"distinct {a.score}"), ",")//对分组后的结果集进行学号匹配并去重后拼接为字符串
    });

假设有数据:

主键学号学科成绩
10001语文78
20001数学79
30001英语80
40002语文60
50002数学60
60003语文55
70003数学68

 

执行后的理论结果:

000178,79,80
000260,60
000355,68

注:示例中没有处理结果集中数据排序问题,如需保证排序规则统一,需指定排序规则(在SqlFunc.Subqueryable<T>().Where()方法后增加排序方法)


http://www.kler.cn/a/401173.html

相关文章:

  • MyBatis Plus中的@TableId注解
  • ROS Action
  • 基于差分、粒子群算法下的TSP优化对比
  • vue实现展示并下载后端返回的图片流
  • 【C++动态规划】3148. 矩阵中的最大得分|1819
  • vue项目使用eslint+prettier管理项目格式化
  • Linux 安装 jdk8
  • 嵌入式工作经验积累
  • 网络抓包工具tcpdump 在海思平台上的编译使用
  • Leetcode打卡:最少翻转次数使二进制矩阵回文II
  • 编程小记1 throw new RuntimeException(“错误信息“);
  • 跨平台WPF框架Avalonia教程 六
  • 缓存工具类编写
  • docker run怎么设置 entry point sleep?
  • 【AIGC】ChatGPT提示词Prompt解析:文章创作大师
  • EMNLP 2024 | 大语言模型的内部知识机理
  • 高效管理 SSH 免密码登录:多客户端与多服务器实践指南20241118
  • 鲸鱼机器人和乐高机器人的比较
  • 搭建vue-electron项目
  • 自动驾驶系统研发系列—智能驾驶核心功能:IHC如何提升夜间驾驶体验?
  • 数造科技亮相第26届高交会并接受媒体采访,以数据智能赋能未来
  • Oracle收缩表空间的简单方法
  • 每日OJ题_牛客_dd爱旋转_模拟_C++_Java
  • 数据结构 【单链表练习】
  • RPA真的是人工智能吗?
  • 二刷代码随想录第七天