34,575
社区成员
发帖
与我相关
我的任务
分享
create table #tb(FID varchar(10) ,FName varchar(8000))
insert into #tb values('A','AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB')
insert into #tb values('B','AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBAAAAAAAAAAAAAA+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1')
--查询A
Declare @a varchar(max)
set @a=''
select @a =@a+' when FName='+quotename(isnull(FName,0),'''')+' then '+isnull(FName,0)
from #tb where FID='A'
select @a
--查询B
Declare @a varchar(max)
set @a=''
select @a =@a+' when FName='+quotename(isnull(FName,0),'''')+' then '+isnull(FName,0)
from #tb where FID='B'
select @a
--截取啊,多拼几次不就可以了。
quotename 返回值类型是nvarchar(258)
也就是最多129个字符,你的B的长度肯定不止
------长度太长了。