永发信息网

Sybase 字符串连接

答案:5  悬赏:0  手机版
解决时间 2021-01-27 18:30
  • 提问者网友:皆是孤独
  • 2021-01-26 17:58
有以下表 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
最佳答案
  • 五星知识达人网友:人间朝暮
  • 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字节长度,所以,如果记录很多,可能记录就不全了。
全部回答
  • 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
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯