标签归档:字符串拼接

mssql sqlserver使用sql脚本将“字符串”同“数值型”进行拼接的方法分享


摘要:
下文讲述sqlserver中将字符串同数值型进行拼接的方法分享
实验环境:sql server 2008 R2

在字符串同数值型进行拼接时,我们必须将数值型先转换为字符串然后再进行拼接操作,因为数值类型优先级高于varchar/nvarchar,
所以两者进行运算时,如果不强制指定”数值”类型的转换,就会出现 低优先级的被强制转换为高优先级(varchar/nvarchar被转换为int),
下文举例讲述int型和varchar的拼接操作,如下所示:

    declare @maomao365_a int
    declare @maomao365_b varchar(30)

    declare @maomao365_c varchar(300)

    set @maomao365_a =10
    set @maomao365_b= 'sqlserver'

    ---错误的写法
    ---set @maomao365_c = @maomao365_a +@maomao365_b 
  
    ---正确的写法
    set @maomao365_c = convert(varchar(10),@maomao365_a) +@maomao365_b 

    print @maomao365_c
MSSQL_sqlserver_不同数据类型字符串拼接方法

MSSQL_sqlserver_不同数据类型字符串拼接方法

mssql sqlserver 使用for xml path对字符串进行拼接的方法分享


摘要:
下文通过举例的方式分享 对一个表中相同value值后的多行字符串数据进行拼接,采用逗号分隔,
实现思路:使用for xml path 和stuff函数实现
如下所示:
实验环境:sqlserver 2008 R2


 create table test(keyid int,info varchar(100))
go

insert into test(keyId,info)values(1,'maomao365.com')
insert into test(keyId,info)values(1,'b')
insert into test(keyId,info)values(2,'猫猫小屋')
insert into test(keyId,info)values(2,'sql_blog')
insert into test(keyId,info)values(3,'sql技巧网站')

go

---数据拼接方法分享 for xml 

select keyId,STUFF((select ','+ info  from dbo.test   where dbo.test.keyId=b.keyId for xml path('')),1,1,'')as info
from dbo.test as b group by keyId

go
truncate table test 
drop table test 
mssql_sqlserver字符串拼接技巧分享

mssql_sqlserver字符串拼接技巧分享