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

小黑日常积累:学习了CROSS APPLY字段,将sqlserver中字段通过分隔符拆分并统计

问题

字段中的元素是通过分隔符进行拼接的,我需要统计元素的个数,例如:
在这里插入图片描述

代码

样例表创建

-- 创建样例表
create table #Tmp_Table
(
    ID   int IDENTITY (1,1) not null,
    Strs nvarchar(50),
    primary key (ID)
);
insert into #Tmp_Table (Strs) VALUES ('a,b,c,d');
insert into #Tmp_Table (Strs) VALUES ('1,2,3,4');
insert into #Tmp_Table (Strs) VALUES ('8');

通过splitstring函数对每一个字段切分的返回结果

SELECT
    *
FROM
    SplitString('1,2,3,4', ',')

在这里插入图片描述
通过CROSS APPLY,‌其是SQL Server中的一种JOIN运算符,主要用于连接表值函数或子查询结果集,并将其应用于主表的每一行。

SELECT
    t.ID,
    s.value AS 'category'
FROM
    #Tmp_Table t
CROSS APPLY
    STRING_SPLIT(t.[Strs], ',') s

在这里插入图片描述
最终代码

SELECT
    category, COUNT(category) AS NUM
FROM
    (SELECT
        t.ID,
        s.value AS 'category'
    FROM
        #Tmp_Table t
    CROSS APPLY
        STRING_SPLIT(t.[Strs], ',') s) AS a
GROUP BY
    category

在这里插入图片描述
在这里插入图片描述


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

相关文章:

  • 层次聚类构建层次结构的簇
  • mamba论文学习
  • 在php中怎么打开OpenSSL
  • windows lm studio 0.3.8无法下载模型,更换镜像
  • SOME/IP--协议英文原文讲解2
  • 汇编的使用总结
  • “爱”之浅谈(一)
  • 混合专家模型MoE的全面详解
  • MybatisX插件快速创建项目
  • [C语言日寄] <stdio.h> 头文件功能介绍
  • Go学习:字符、字符串需注意的点
  • MotionLCM 部署笔记
  • 基于最近邻数据进行分类
  • 蓝牙技术在物联网中的应用有哪些
  • xclode版本
  • AI大模型开发原理篇-1:语言模型雏形之N-Gram模型
  • 【Pandas】pandas Series cummax
  • JavaScript_03 超简计算器
  • 深入理解指针(2)
  • Apple M1 ARM MacBook 安装 Apache TVM
  • VScode 插件开发 国际化帮助工具
  • [C语言日寄] 源码、补码、反码介绍
  • 【后端】Flask
  • IDEA常用快捷键
  • 算法基础学习——二分查找(附带Java模板)
  • 消息队列篇--通信协议篇--应用层协议和传输层协议理解