有以下表 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
Sybase 字符串连接
答案:5 悬赏:0 手机版
解决时间 2021-01-27 18:30
- 提问者网友:皆是孤独
- 2021-01-26 17:58
最佳答案
- 五星知识达人网友:人间朝暮
- 2021-01-26 18:24
declare @str varchar(8000)
SET @str=''
SELECt @str=@str+CAST(A AS varchar(10))+'-'+B+','
FROM Test;
SET @str=LEFt(@str,LEN(@str)-1)
SELECT @str;
由于varchar只支持最多8000字节长度,所以,如果记录很多,可能记录就不全了。
SET @str=''
SELECt @str=@str+CAST(A AS varchar(10))+'-'+B+','
FROM Test;
SET @str=LEFt(@str,LEN(@str)-1)
SELECT @str;
由于varchar只支持最多8000字节长度,所以,如果记录很多,可能记录就不全了。
全部回答
- 1楼网友:妄饮晩冬酒
- 2021-01-26 23:28
“+” 既是字符串连接符也是算术运算符,具体要看用在什么地方了,你的语句定义了字符型,当做字符串连接,所以此时“++”=“+”。
- 2楼网友:鸽屿
- 2021-01-26 22:32
convert(char(50),A - convert(integer,B))
convert是sybase中的类型转换函数。
convert(datatype,变量[,显示格式])
- 3楼网友:山有枢
- 2021-01-26 21:00
哥们~~这么整
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字段是否就是你需要的效果?
- 4楼网友:一把行者刀
- 2021-01-26 19:51
‘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
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯