如何生成这个SQL语句?

powerbamboo 2003-09-05 02:58:31
Table: tConfig
Columns: iType(smallint) sUsers(nvarchar) Data(nvarchar)
Record: 1 aa 130xxxxxxxx
1 aa 138xxxxxxxx
2 bb 136xxxxxxxx
...... ...... ......
我要得到:
1 aa 130xxxxxxxx,138xxxxxxxx,......
(所有的电话号码在一个字段中)
...全文
26 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
powerbamboo 2003-09-05
  • 打赏
  • 举报
回复
不用函数可以吗?
nboys 2003-09-05
  • 打赏
  • 举报
回复
create function f_name(@id int,name varchar(100)
returns varchar(8000) --如果数据大,可以改成大一点的长度
as
begin
declare @sql varchar(8000)
set @sql=''
select @sql=@sql+Data from tConfig where iType=@id and sUsers=@name
return(@sql)
end
go

执行:
selecdt distinct iType,sUsers,dbo.f_name(iType,sUsers) as [Date] from tConfig
nboys 2003-09-05
  • 打赏
  • 举报
回复
create function f_name(@id int,name varchar(100)
returns varchar(1000)
as
begin
declare @sql varchar(1000)
set @sql=''
select @sql=@sql+Data from tConfig where iType=@id and sUsers=@name
return(@sql)
end
go

执行:
selecdt distinct iType,sUsers,dbo.f_name(iType,sUsers) as [Date] from tConfig
txlicenhe 2003-09-05
  • 打赏
  • 举报
回复
create function getstr(@content smallint)
returns narchar(4000)
as
begin
declare @str nvarchar(4000)
set @str=''
select @str=@str+N','+rtrim(Data) from tConfig where iType = @content
select @str=right(@str,len(@str)-1)
return @str
end
go

--调用:
select iType,sUsers,dbo.getstr(iType) as Data from tConfig group by iType,sUsers
sdhdy 2003-09-05
  • 打赏
  • 举报
回复
--用函数
create function test(@id int)
returns nvarchar(8000)
as
begin
declare @sql nvarchar(8000)
set @sql=''
select @sql=@sql+N','data from tConfig where itype=@id
select @sql=right(@sql,len(@sql)-1) where @str<>''
return(@sql)
end

--执行
select distinct itype,susers,dbo.test(itype) as asdf from tConfig
sdhdy 2003-09-05
  • 打赏
  • 举报
回复
--用函数
create function test(@id int)
returns varchar(8000)
as
begin
declare @sql varchar(8000)
set @sql=''
select @sql=@sql+data from tConfig where itype=@id
return(@sql)
end

--执行
select distinct itype,susers,dbo.test(itype) as asdf from tConfig
pengdali 2003-09-05
  • 打赏
  • 举报
回复
create function getstr(@content smallint)
returns narchar(4000)
as
begin
declare @str nvarchar(4000)
set @str=''
select @str=@str+N','+rtrim(Data) from tConfig where iType@content
select @str=right(@str,len(@str)-1) where @str<>''
return @str
end
go

--调用:
select iType,dbo.getstr(iType) as Data from tConfig group by iType,sUsers
CrazyFor 2003-09-05
  • 打赏
  • 举报
回复
1,建自定义函数
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
GO

2,调用
select 条件字段,dbo.getstr(条件字段) from 表名 group by 条件字段
pengdali 2003-09-05
  • 打赏
  • 举报
回复
create function getstr(@content int)
returns varchar(8000)
as
begin
declare @str varchar(8000)
set @str=''
select @str=@str+','+rtrim(Data) from tConfig where iType@content
select @str=right(@str,len(@str)-1) where @str<>''
return @str
end
go

--调用:
select iType,dbo.getstr(iType) as Data from tConfig group by iType,sUsers

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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