declare @code1 varchar(50)
declare @code2 varchar(50)
declare @code3 varchar(50)
declare @code4 varchar(50)
select @code1=acode,@code3=acode from tta where acode='1000 1011 1010 0001 1100 1111'
select @code2=bcode,@code4=bcode from ttb where bcode='1000 1011 1010 1111 0000 1001'
set @code1=substring(@code1,1,9)
set @code2=substring(@code2,1,9)
select @code1
select @code2
if charindex(@code1,@code2)=1
begin
set @code3=@code3+substring(@code4,10,len(@code4)-9)
update tta set acode=@code3
end
select @code3
测试通过,直接执行,就OK了
create table AAA(XXX int,YYY varchar(20))
insert AAA select 1, '张三'
union all select 1, '李四'
union all select 2, '张三'
union all select 2, '李四'
union all select 3, '张三'
select XXX, YYY into #T from AAA order by XXX
declare @XXX int, @YYY varchar(1000)
update #T set
@YYY=case when @XXX=XXX then @YYY+','+YYY else YYY end,
@XXX=XXX,
YYY=@YYY
select XXX, max(YYY) as YYY from #T group by XXX
drop table AAA
drop table #T
--结果
/
XXX YYY
------------------
1 张三,李四
2 张三,李四
3 张三
/
以上是复杂的,你的要求比较简单些,这样就可以了
create table AAA(XXX varchar(20))
insert AAA select '张三'
union all select '李四'
union all select '王五'
declare @str varchar(8000)
set @str = ''
select @str=@str + XXX +',' from AAA
select Left(@str,Len(@str)-1) 'name'
drop table AAA
--结果
/
name
---------------------
张三,李四,王五
/
这个已经是最简单的啦,用变量
select A+1 结果为1select A+1 结果为1select 2+1 结果为3感觉在+运算中,SQLite将字符串非数字串都当作0处理了加号就是针对数字的,所以应该用|| 来拼接字符串的结果
table[]数组大小不合理,应该至少有4个sizeof(char)大小才行
1、int数由个十百千位组成。所以234可以这样得到:(table[0] 10 + table[1]) 10 +table[2] = (210+3)10+4=234。
2、可以先定义一个字符数组用来存放字符串。char newstr[4]; newstr[0] = table[0],newstr[1] = table[1], newstr[2] = talbe[2]; newstr[3] = '\0';注:newstr[3]='\0'的作用是注明字符串已结束,否则程序不知道什么时候读完newstr数组。这样就可以得到abc串了。
我不确定这个行不行,我怎么记得case when 好像不能进行子查询吧???你试试吧,不行再说。
select case when 1=(select 尺码类型 from A where 货号='A1') then 尺码类型1 else 尺码类型2 end 尺码类型 from B。
还有一个办法是,查询的时候并列。
就是把原来的B表,合并为
类似下面这样的表,不是保存一张这样的表,而是查询时形成一张这样的表,然后再关联,不用建立这个不合范式的表,不过这张表不大,建立一张也行。
尺码1 XS 1
尺码2 s 1
尺码1 235 2
。。。。。
完全按你的写法,我没能做到,在ASP的FOR循环中,把一个变量变成值不知道应该怎么写,就只好这样九个循环:
For i = 1 To 9
ss1=ss1 & "##" & RequestForm("ss10"&i)
Next
For i = 1 To 9
ss2=ss2 & "##" & RequestForm("ss20"&i)
Next
……
……
如果能换个方式,使用数组就方便了:
Dim ss,ssn
ReDim ss(9)
For i = 1 To 9
For j = 1 To 9
ssn=ssn & "##" & RequestForm("ss"& i &"0"& j)
Next
ss(i)=ssn
ssn=""
Next
responsewrite ss(1)
responsewrite ss(2)
……
responsewrite ss(9)
……
关于你的做法:现在组合,读取时又分解,很不理解这个做法啊。可以用数组解决这个问题的吧?
以上就是关于sql字符串截取与合并问题,请写具体一点。求高手!!全部的内容,包括:sql字符串截取与合并问题,请写具体一点。求高手!!、如何合并相同字段名的字符串、SQLite中怎么将两个字段字符串合并连接为一个等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)