SQLSqlserver中如何将一列数据,不重复的拼接成一个字符串

  把一列数据拼接成一个字符串比较简单:

declare @test varchar(500)
set @test=‘‘;
select @[email protected]+name+‘,‘ from person
select @test

  但是如果数据中有重复选项,想去掉重复的就比较绕弯了。

declare @test varchar(500)
set @test=‘‘;
select distinct @test=@test+name+‘,‘ from person
select @test

加distinct是不行的,我在sql server 2008 版本测试起码是不行的,只显示了第一行的数据。

绕弯一下:

declare @test varchar(500)
set @test=‘‘;
with cte as
(
select distinct name+‘,‘ as name
from person
)
select @test=@test+name from cte 

select @test 

其实这个思路下,用临时表,表变量什么的都可以,但是用CTE比较简洁。看来公用表表达式(CTE)有时候挺有用的。

SQLSqlserver中如何将一列数据,不重复的拼接成一个字符串,布布扣,bubuko.com

时间: 2025-01-19 20:51:34

SQLSqlserver中如何将一列数据,不重复的拼接成一个字符串的相关文章

SQL Server 自定义函数(1)把某一列多行的值拼接成一个字符串

DECLARE @resultstr VARCHAR(8000) SET @resultstr='' SELECT @resultstr=@resultstr+'|'+[BaseImage] FROM dbo.life_fc PRINT @resultstr

把数组中的数据按照指定个格式拼接成一个字符串

/* * 需求:把数组中的数据按照指定个格式拼接成一个字符串 * 举例: *         int[] arr = {1,2,3};     * 输出结果: *        "[1, 2, 3]" * 分析: *         A:定义一个字符串对象,只不过内容为空 *         B:先把字符串拼接一个"[" *         C:遍历int数组,得到每一个元素 *         D:先判断该元素是否为最后一个 *             是:就直接

String-需求:把数组中的数据按照指定的格式拼接成一个字符串

package cn.lianxi; /* * 需求:把数组中的数据按照指定的格式拼接成一个字符串 * 举例: * int [] arr = {1,2,3}; * 输出结果 * “[1, 2, 3]” * 分析: * 1.定义一个字符串对象,只不过内容为空 * 2.把字符串拼接一个“[” * 3.遍历数组,得到每一个元素 * 4.先判断该元素是否为最后一个 * 是:就直接拼接元素和] * 不是:就拼接元素和逗号以及空格 * 5.输出拼接后的字符串 * */ public class zifu {

SQLServer中查询的数字列前面补0返回指定长度的字符串

SQLServer中查询的数字列前面补0返回指定长度的字符串: 如: 角本如下: /****** Script for SelectTopNRows command from SSMS ******/ SELECT TOP 1000 [ID] ,[SN] ,[Name] FROM [EduDB].[dbo].[TestTab] select Right('0123456',SN) from TestTab; select RIGHT(REPLICATE('0',5)+CAST(SN AS var

EXCELL中怎么将两列数据对比,找出相同的和不同的数据?

假设你要从B列中找出A列里没有的数据,那你就在C1单元格里输入“=IF(ISNA(VLOOKUP(B1,A:A,1,0)),"F","T")”显示T就表示有,F就表示没有.经过测试,效果很好.推荐使用!

SqlServer和Oracle从多行记录(数据集)中查询结果并拼接成一个字符串的SQL语句(纵表数据转成拼接的文本)

使用情景: 例如:需要从学生成绩表中,查询分数大于95分的所有学生编号,用逗号分隔成一个字符串. 准备测试数据: create table score (id int,score int) insert into score values(1,90) insert into score values(2,96) insert into score values(3,99) 现在需要通过一个语句查询重"2,,3"这个结果字符串. SQL Server语句如下: select substr

asp.net中 使用参数化mysqlparameter 保存数据时,总保存成一个汉字的解决方案。

var param = new MySqlParameter("@" + columName, property.Value); param.DbType = DbType.String; 原文地址:https://www.cnblogs.com/haoliansheng/p/8243012.html

用SQL将查询出来的多列的值拼接成一个字符串【转载】

MySQL中: [sql] view plaincopyprint? -- 单列拼接,先查出一行,再加上逗号,接着拼接 查出的下一行 select group_concat(E.SUPPORT) from ENGINES E where E.XA IN('YES','NO') --结果如下:YES,YES,YES,YES,YES,YES,DEFAULT,YES -- 将查询的结果中的 "," 号,替换成 "**" 号 select REPLACE(group_con

python列表中的所有值转换为字符串,以及列表拼接成一个字符串

>>> ls1 = ['a', 1, 'b', 2] >>> ls2 = [str(i) for i in ls1] >>> ls2 ['a', '1', 'b', '2'] >>> ls3 = ''.join(ls2) >>> ls3 'a1b2'