CREATE Proc Result @id varchar as declare @str1 varchar(400) declare @str2 varchar(400) set @str2='_' set @str1='' select @str1=@str1 + log +@str2 from [t2] where id=@id set @str1=left(@str1,len(@str1)-1)Select id,name,sex,@str1 from t1 where id=@id GO
不能用存储过程啊,就用一个sql语句实现,在程序中调用的,拜托大家了啊!!!!
其实你执行这句就可以 但是人的id要以一个选declare @str1 varchar(400) declare @str2 varchar(400) set @str2='_' set @str1='' select @str1=@str1 + log +@str2 from [t2] where id=@id set @str1=left(@str1,len(@str1)-1)Select id,name,sex,@str1 from t1 where id=@id
--更正一下 CREATE PROCEDURE Result @id varchar(100) as declare @str1 varchar(400) declare @str2 varchar(400) set @str2='|' set @str1='' select @str1=@str1 + log +@str2 from [B表] where aid=@id set @str1=left(@str1,len(@str1)-1)Select id,name,sex,@str1 as result from [A表] where id=@id GO
数据长度根据自己的需要设置吧 1.企业管理器—>用户定义的函数—>新建函数—>复制粘贴 CREATE Function Result(@id nvarchar(30)) returns varchar(400) as begin declare @str1 varchar(400) declare @str2 varchar(400) set @str2='|' set @str1='' select @str1=@str1 + IsNull(log,'') + @str2 from [t2] where id=@id return @str1 end2.程序中调用 select *,dbo.Result(id) as result from t1 或 select *,dbo.Result(1) as result from t1 where id=1
但是你可能要选出好多人,所以变量个数无法定。
不过可通过多条指令来实现。
笨一点吧,先找到 得得“l”
再通过"l"得到,后面的,再把所有加起来吧。帮你顶!
as
declare @str1 varchar(400)
declare @str2 varchar(400)
set @str2='_'
set @str1=''
select @str1=@str1 + log +@str2 from [t2] where id=@id
set @str1=left(@str1,len(@str1)-1)Select id,name,sex,@str1 from t1 where id=@id
GO
但是人的id要以一个选declare @str1 varchar(400)
declare @str2 varchar(400)
set @str2='_'
set @str1=''
select @str1=@str1 + log +@str2 from [t2] where id=@id
set @str1=left(@str1,len(@str1)-1)Select id,name,sex,@str1 from t1 where id=@id
CREATE PROCEDURE Result @id varchar(100)
as
declare @str1 varchar(400)
declare @str2 varchar(400)
set @str2='|'
set @str1=''
select @str1=@str1 + log +@str2 from [B表] where aid=@id
set @str1=left(@str1,len(@str1)-1)Select id,name,sex,@str1 as result from [A表] where id=@id
GO
晕,顾着修改
恐怕我浪费时间了。
一句sql是不可能实现的,
还是在程序中一个个纪录movenext做格式化吧。
附加一点,我B表里面的具体有多少个记录符合要求是不固定的啊!
你在钻牛角尖,另外想办法解决。是你的设计有问题。
1.企业管理器—>用户定义的函数—>新建函数—>复制粘贴
CREATE Function Result(@id nvarchar(30))
returns varchar(400)
as
begin
declare @str1 varchar(400)
declare @str2 varchar(400)
set @str2='|'
set @str1=''
select @str1=@str1 + IsNull(log,'') + @str2 from [t2] where id=@id
return @str1
end2.程序中调用
select *,dbo.Result(id) as result from t1
或
select *,dbo.Result(1) as result from t1 where id=1
说得对!谢谢!