怎么把同一个表中的字符串字段连接起来
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么把同一个表中的字符串字段连接起来相关的知识,希望对你有一定的参考价值。
参考技术A sqlserver的话,字符串和字段用+即可(前提是两者都是字符型数据)如:
select 'a'+一个字符型的字段 from table_namemysql的话,用concat函数
如:
select concat('a',一个字符型的字段) from table_name
Sybase 字符串连接
有以下表 Test,有两个字段A int,B varchar
我想将Test表中的所有结果集以 ‘A-B,A-B’的形式连接成一个长的字符串
请问该怎么做,非常感谢大家~
convert 我知道,重点是怎么把结果集以这种新式连接起来
都没有实现,解决方案:
创建一个临时表
create table #tmp(A int,B varchar(20),updated varchar(1) default 'N')
insert into #tmp(A,B)
select A,B from Test
declare @rowct int,@str varchar(255)
select @rowct = count(A) from #tmp
while(@rowct >0)
begin
select top 1 A,B from #tmp where updated='N'
update #tmp set updated='Y' where ...
select @str = @str + convert(varchar(6),A)+'-'+B from #tmp where ...
set @rowct = @rowct -1
end
select @str
SET @str=''
SELECT @str=@str+CAST(A AS varchar(10))+'-'+B+','
FROM Test;
SET @str=LEFT(@str,LEN(@str)-1)
SELECT @str;
由于varchar只支持最多8000字节长度,所以,如果记录很多,可能记录就不全了。 参考技术A convert(char(50),A - convert(integer,B))
convert是sybase中的类型转换函数。
convert(datatype,变量[,显示格式]) 参考技术B 哥们~~这么整
create table #test (A int, B varchar(10))
insert #test values(10,"测试")
insert #test values(11,"测试1")
create table #test1 (A int, B varchar(10),C varchar(20))
insert into #test1
select a.A,a.B,convert(varchar(10),a.A) + '-' + a.B from #test a
select C from #test1 这个C字段是否就是你需要的效果? 参考技术C ‘A-B,A-B’是什么概念??字符串相减??还是相连??
相连:
select rtrim(convert(char,A))+B+','+rtrim(convert(char,A))+B
FROM Test
因为int转为char是会有空格,所以用rtim将空格去掉。
基本上就是这个格式,你可以根据自己的要求来组合
select rtrim(convert(char,A))+'-'+B+','+rtrim(convert(char,A))+'-'+B
FROM Test 参考技术D select into 创建一张临时表
以上是关于怎么把同一个表中的字符串字段连接起来的主要内容,如果未能解决你的问题,请参考以下文章