这个基本上很难做到,必须用cursor !
解决方案 »
- 一个简单的sql语句
- 请大家帮忙看看,存储过程中的问题
- 求助:关于一句简单的sql语句,两表关联查询的!
- 错误8909: table error: Object ID 0,page ID (1:300446). The pageID in the page head
- 给sql加密,我怎么加密都没有反应?
- 使用事务,如果对一个表查询或操作太多,会假死机?大家遇到过吗?
- SQL SERVER 怎么将登录用户和相应的权限导出导入?
- 存储过程传参,求助
- 如何设定强制存取控制的主体灵敏度(许可证级别)和客体的灵敏度(密级)
- 救急!!!怎样才能让四台远程拨号上网pc共享一个数据库???
- 有一段这样的语句,不正确,回答者进来!!
- 超难联接问题,紧急中...
Create function getstr(@id Nchar(100))
returns Nvarchar(4000)
as
begin
declare @str Nvarchar(4000),@分隔符 Nvarchar(10)
set @分隔符=N','
set @str=N''
select @str=@str+rtrim(Col)+@分隔符 from 表名
--------------------------------^^^^要相加的字段名
where 相加条件字段=@id
set @str=left(@str,len(@str)-1)落 ---却除最后一个分隔符
return @str
end
GO2,调用
select 条件字段,dbo.getstr(条件字段) from 表名 group by 条件字段
CREATE FUNCTION GETSTR(@companyid NVARCHAR(20))
RETURNS NVARCHAR(200)
AS
BEGIN
DECLARE @str NVARCHAR(200)
SET @str='' SELECT @str = @str+ROOMID+','
FROM 表2 WHERE companyid =@companyid SET @str = LEFT(@str,LEN(@str)-1)
RETURN @str
END然后调用
select A.id,A.name,dbo.getstr(id)
FROM 表1 A INNER JOIN 表2 B on B.companyid = A.id
Where id = 224
returns varchar(8000)
as
begin
declare @str varchar(8000)
set @str=''
select @str=@str+','+rtrim(tanweihao) from 表2 where company=@id
select @str=right(@str,len(@str)-1) where @str<>''
return @str
end
go--调用:
select *,dbo.getstr([id]) tanweihao from 表1
FROM 表1 A INNER JOIN 表2 B on B.companyid = A.id
Group by id
select *,dbo.getstr(id) tanweihao FROM 表1