字符组合和排列

huangqing_80 2011-07-04 09:41:46
现有两个字符串A和B,要求将A和B中的每一个字符分拆为单个字符,然后根据它们的排列顺序,依次重新组合成一个新的字符串。打个比方说
A=abcd
B=opqrs
组合后的字符串结果为C=aobpcqdrs,意思就是说,将A的abcd分拆为a,b,c,d,将b的opqrs分拆为o,p,q,r,s,然后根据两个字符串的原排列顺序依次组合为C=aobpcqdrs,即
C=A1+B1+A2+B2+A3+B3+A4+B4+B5
注意:A和B的长度不固定,有可能A比B长,也有可能相等,也有可能A比B短。当长度不一致时,余下的排列直接为多出的长度部分(如A=abc,B=opqrst,则C=aobpcqrst或者A=abcdefg,B=opq,则C=aobpcqdefg)
敬候各位大虾的答案。
...全文
106 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
-晴天 2011-07-04
  • 打赏
  • 举报
回复
declare @s1 varchar(100),@s2 varchar(100),@s varchar(200)
set @s1='abcd'
set @s2='opqrs'
--解:
select @s=isnull(@s,'')+
(case when len(@s1)>=number then substring(@s1,number+1,1) else '' end)+
(case when len(@s2)>=number then substring(@s2,number+1,1) else '' end)
from master..spt_values where type='p' and number<=any(select len(@s1) union all select len(@s2))
select @s
/*
----------------------------
aobpcqdrs

(1 行受影响)

*/
zs621 2011-07-04
  • 打赏
  • 举报
回复

DECLARE @A NVARCHAR(30);
DECLARE @B NVARCHAR(30);
SET @A='ABCDE';
SET @B='UYYRWWVC';
DECLARE @SQL NVARCHAR(2000);
DECLARE @I INT;
SET @I=1;
SET @SQL='';
IF LEN(@A)>LEN(@B)
BEGIN
WHILE @I<=LEN(@B)
BEGIN
SET @SQL=@SQL+SUBSTRING(@A,@I,1);
SET @SQL=@SQL+SUBSTRING(@B,@I,1);
SET @I=@I+1;
END
SET @SQL=@SQL+SUBSTRING(@A,@I,LEN(@A)-@I+1);
END
ELSE
BEGIN
WHILE @I<=LEN(@A)
BEGIN
SET @SQL=@SQL+SUBSTRING(@A,@I,1);
SET @SQL=@SQL+SUBSTRING(@B,@I,1);
SET @I=@I+1;
END
SET @SQL=@SQL+SUBSTRING(@B,@I,LEN(@B)-@I+1);
END
SELECT @SQL;

22,301

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧