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

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

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

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

谢谢啦!
...全文
95 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
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
内容概要:本文围绕“基于超局部模型与自抗扰ESO观测器的无模型预测电流控制改进策略”展开研究,提出一种结合超局部模型(ULM)与扩张状态观测器(ESO)的无模型预测电流控制(MFPCC)改进方法,旨在提升永磁同步电机(PMSM)电流环的动态响应性能与抗干扰能力。该策略利用超局部模型对系统行为进行局部逼近,避免依赖精确数学模型,同时引入自抗扰控制中的ESO实时观测并补偿系统内外部扰动,有效抑制参数摄动、负载变化及模型不确定性带来的影响。研究通过Simulink搭建完整的控制系统仿真模型,对传统MFPCC与所提改进策略进行对比分析,验证了新方法在电流跟踪精度、响应速度和鲁棒性方面的优越性。; 适合人群:具备电机控制、现代控制理论及Simulink仿真基础的电气工程、自动化及相关专业的研究生、科研人员及工程技术人员。; 使用场景及目标:①用于高性能电机驱动系统中电流环控制器的设计与优化;②为无模型控制与自抗扰控制的融合应用提供技术参考;③支撑相关课题的仿真验证、论文复现与创新方法研究。; 阅读建议:建议读者结合Simulink仿真模型深入理解控制结构与参数整定过程,重点关注ESO的观测性能与扰动补偿机制,并可通过改变负载条件、参数偏差等工况进行鲁棒性测试,进一步掌握该改进策略的核心优势与适用边界。

34,876

社区成员

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

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