一条sql语句在delphi中输出的结果出现错误

llqbc 2011-05-01 04:36:32
数据库
c1 c2
1 a
2 b
1 f
1 n

希望查询为
c1 c2
1 a,f,n
2 b

在 server 2005 中用以下语句正常输出上述结果

select c1,c2=stuff((select ','+c2 from aa t where c1=aa.c1 for xml path('')), 1, 1,'') from aa group by c1'

但在delphi中结果变为:
c1 c2
1 [memo]
2 [memo]

怎么办?
...全文
78 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
llqbc 2011-05-01
  • 打赏
  • 举报
回复
试了,3楼可以,sql语法几乎就是一门语言,结题!
Oraclers 2011-05-01
  • 打赏
  • 举报
回复
select c1,c2=stuff((select ','+c2 from aa t where c1=aa.c1 for xml path('')), 1, 1,'') from aa group by c1'
将以上语句改为:
select c1,c2=cast(stuff((select ','+c2 from aa t where c1=aa.c1 for xml path('')), 1, 1,'') as varchar(5)) from aa group by c1
也就是强制将c2转换为varchar(5)类型。
llqbc 2011-05-01
  • 打赏
  • 举报
回复
c2 为 nvarchar(5)
bdmh 2011-05-01
  • 打赏
  • 举报
回复
c2字段是备注型的吧,所以在grid中显示memo,可以在字段的OnGetText方法中显示出来,或者用第三方的dev系列的grid,把列设置成显备注的

2,507

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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