SQL server查询结果拼接

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL server查询结果拼接相关的知识,希望对你有一定的参考价值。

如下图所示的一张表

有2张数据表,2张表依据内码关联。想要的结果如下:
ID SKF INA
805010 S00001/S00002
805030 S00004/S00005 I00002
如果表2的brand相同时,就把结果拼接到一起用‘/’隔开,请各位大蛇呢看看这个语句应该怎么写。
跪求各位大神帮帮忙。

问题分析:查询结果拼接有多种

示例使用的临时表:

Create Table t_b_TableTemp
(
ID as int not null,
username as varchar(50) null
)


示例1、查询username(字符列)与字符串(用户姓名)拼接

select \'用户姓名\'+username from t_b_TableTemp


示例2、查询ID(数字列)与字符串(序号)拼接

select \'序号\'+cast(ID as varchar(50)) from t_b_TableTemp

与示例1比较后你就知道了,凡是遇到数字类型和字符拼接,都需要先将数字类型转换为字符串类型,转换函数有Cast和Convert,你可以酌情使用。


示例3:多列合并

select cast(ID as varchar(50))+username from t_b_TableTemp


示例4:多个查询结果的合并(使用Union All或Union),在使用的时候一定要注意多个查询结果的列数,列类型必须一致

select ID,username from t_b_TableTemp
union all
select ID,username from t_b_TableTemp

上面的查询结果是t_b_TableTemp记录得双倍,也就是说Union all方式是将两个查询结果拼接起来为一个查询结果。

select ID,username from t_b_TableTemp
union 
select ID,username from t_b_TableTemp

上面的查询结果和t_b_TableTemp记录一致,也就是说Union是会去除完全重复的记录

参考技术A select ID,brand,stuff((select '/'+oeno from tb where a.ID=ID AND a.brand=brand 
for xml path('') ),1,1,'') as SKF
from tb a
group by ID,brand

大概是这个形式,我不知道你还有什么条件区分,你自己再改造吧

追问

你这个方法是转换成XML的,我现在没有办法转换成XML的,虽然不行,不过还是采纳了。

追答

没有办法转是什么意思?这个最终结果不是xml格式,是字符格式,stuff函数已经隐式转换了啊

本回答被提问者和网友采纳

sql查询结果直接拼接

select a.*,(a.startTime+|+a.endTime) as states  from OA_Vote_Subject as a where 1=1 

拼接后的states为 2016-02-02 00:00:00|2016-02-29 00:00:00

 

以上是关于SQL server查询结果拼接的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server常用查询

sqlserver中怎么拼接查询语句

sql查询结果拼接

将两条sql的查询结果拼接在一起显示

sql server 的存储过程字符串怎么拼接的

sql查询结果直接拼接