导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

一个小问题,100分相送,谢谢大家。

ezlz 2003-12-25 05:33:38
有如下表

Id sp
-------
1 苹果
2 桔子
3 香蕉

有什么sql可以得到诸如 "苹果 桔子 香蕉" 的结果?没有条件的限制,在sp下有多少就得到多少,但结果只能在一个字段中。

谢谢啦!
...全文
27 点赞 收藏 14
写回复
14 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
happy_0325 2003-12-26
select distinct sp from tablename
回复
victorycyz 2003-12-26
结果只能在一个字段中。
------------------------------
这是一个有趣的现象。大家都能把这句话理解成“结果放到一行中”。而不会理解成:
select sp from tablename
回复
hglhyy 2003-12-25
同意!
回复
gmlxf 2003-12-25
注意:
left(@x,len(@x)-1)的写法会在没有记录的时候出错。
当然你可以判断@x是否等于''

你可以使用substring()就不需要做判断都可以了,代码如下:
declare @x varchar(8000)
set @x=''
select @x=@x + ' ' + sp from @t order by id
set @x=substring(@x,2,8000)
select @x

有不用存储过程的吗?因为是在程序中自动组合sql语句。
----
存储过程是可以,还是函数方便,写法可以是:
create function test()
returns varchar(8000)
as
begin
declare @x varchar(8000)
set @x=''
select @x=@x + ' ' + sp from @t order by id
set @x=substring(@x,2,8000)
return @x
end
-- 前台调用:
sql = "select dbo.test()"


回复
txlicenhe 2003-12-25
create function test()
returns varchar(8000)
as
begin
declare @x varchar(8000)
set @x=''
select @x=@x+ ' '+ sp from table order by id
return @x
end

然后就可以
select dbo.test()
回复
realgz 2003-12-25
对如果是空格要加一句
set @x=left(@x,len(@x))
是*要加
set @x=left(@x,len(@x)-1)
回复
realgz 2003-12-25
declare @x varchar(8000)
set @x=''
select @x=@x+ '*'+ sp from table order by id
select @x
--另:一句话的恐怕没有
回复
ezlz 2003-12-25
有不用存储过程的吗?因为是在程序中自动组合sql语句。

另如果需要指定分隔符如‘*’该如何求解?
回复
erigido 2003-12-25
declare @t table(id int,sp nvarchar(20))
insert into @t select 1,'苹果' union all select 2,'香蕉' union all select 3,'桔子'
select * from @t

declare @c varchar(8000)
set @c=''
select @c = @c + ' '+sp from @t
select @c
回复
sdhdy 2003-12-25
declare @x varchar(8000)
set @x=''
select @x=@x+sp+' ' from table order by id
set @x=left(@x,len(@x)-1)
select @x
回复
sdhdy 2003-12-25
realgz(realgz)的就行!
回复
mjhnet 2003-12-25
严重同意realgz(realgz)
回复
realgz 2003-12-25
declare @x varchar(8000)
set @x=''
select @x=@x+ ' '+ sp from table order by id
select @x
回复
ezlz 2003-12-25
up
回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告