数据库如何将一列的值,拼接为逗号分隔的字符串

 时间:2024-10-12 00:39:05

1、创建一个临时表,用于演示sqlserver数据库中,如何将一个字段的数据拼接成一个字符串。例如:将物料清单表中的物料编码,使用逗号分隔,拼接成一个字符串IF OBJECT_ID('tempdb..#tblBom') IS NOT NULL DROP TABLE #tblBom;CREATE TABLE #tblBom( OrderNo varchar(50), -- 订单号 ItemCode varchar(50), -- 物料编码 ItemName varchar(50) -- 物料名称 );

数据库如何将一列的值,拼接为逗号分隔的字符串

2、往临时表中插入几行测试数据,模拟物亓歃肿肖料清单insert into #tblBom(OrderNo, ItemCode, ItemName) values('PO2019001媪青怍牙', 'MC001', '物料1');insert into #tblBom(OrderNo, ItemCode, ItemName) values('PO2019001', 'MC002', '物料2');insert into #tblBom(OrderNo, ItemCode, ItemName) values('PO2019001', 'MC003', '物料3');insert into #tblBom(OrderNo, ItemCode, ItemName) values('PO2019002', 'MC001', '物料1');insert into #tblBom(OrderNo, ItemCode, ItemName) values('PO2019003', 'MC005', '物料5');

数据库如何将一列的值,拼接为逗号分隔的字符串

3、查询临时表1中的测试数据select * from #tblBom;

数据库如何将一列的值,拼接为逗号分隔的字符串

4、假设表中的数据很少,而且,需求也是要将所有的物料编码,使用逗号拼接起来,那么,就可以使用for xml path语法select ',' + ItemCode from #tblBom for xml path('')

数据库如何将一列的值,拼接为逗号分隔的字符串

5、从上面的结果可以看出,相同的物料编码,在字符串中重复出现了,那么,如何才能拼接不重复的物料编码呢?其实,直接加上去重关键字distinct就可以了select distinct ',' + ItemCode from #tblBom for xml path('')

数据库如何将一列的值,拼接为逗号分隔的字符串

6、上面的物料编码虽然去重了,但是,拼接的字符串最前面是以逗号开始的,如何才能去掉这个逗号呢?这个时候,就需要使用stuff函数了select (stuff((select distinct ',' + ItemCode from #tblBom for xml path('')),1,1,''))

数据库如何将一列的值,拼接为逗号分隔的字符串

7、上面都是查询整个表的结果,实际使用时,经常需要按照一定的条件过滤,这个时候就需要使用关联语句了select ItenCode = (select stuf熠硒勘唏f((select distinct ',' + ItemCode from #tblBom where OrderNo = tbl.OrderNo for xml path('')), 1, 1, ''))from #tblBom tblwhere tbl.OrderNo = 'PO2019001'group by tbl.OrderNo

数据库如何将一列的值,拼接为逗号分隔的字符串
  • 使用VB做一个条码生成器
  • VBA用字典的方法制作一个列表框
  • VB 6.0 怎么多行注释和取消多行注释
  • 如何使用VBA中GetOpenFilename的文件多选参数
  • vf6.0数值型转换为字符型的函数
  • 热门搜索
    关于春天的手抄报花边 小学生食品安全手抄报 关于春节手抄报大全 初中交通安全手抄报 关于地理的手抄报 国庆节手抄报的内容 大手拉小手手抄报 感恩手抄报花边 说普通话手抄报内容 鲁迅手抄报图片