一个SQL难题,请各位高手帮忙.

lijia4 2008-01-17 07:20:32
有一个TableA如下

colA colB colC colD

用select * from TableA查询之后结果为
---------------------
ABC DEF GHI JKL


如何将结果输出成这样的一连串字符.
ABC DEF GHI JKL
...全文
88 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lijia4 2008-01-17
  • 打赏
  • 举报
回复
非常感谢大家,
可是我只能在数据库里面做这些处理.
devote 2008-01-17
  • 打赏
  • 举报
回复
string strsql = "";
foreach (DataColumn col in dt.Columns)
{
strsql = strsql + col.ColumnName.ToString() + " +' '+ ";
}
strsql = "Select " + strsql + "From " + dt.TableName.ToString();
然后用strsql获得数据, 如何有多个表可以用table 数组,和strsql数组.



不知对你是否有用?
xjjdanran 2008-01-17
  • 打赏
  • 举报
回复
写是可以写了,不过在触发器上里面写,就得读系统表sysobjects及syscolumns的信息,根据当前表的表名,得到所有列的集合,再用游标来遍历这个集合,组装成查询语句,然后再执行查询语句. 如果有其它方法能实现的话,最好不要在触发器中实现类似的功能,而且触发器中不建议使用游标.
MyNameIsPig 2008-01-17
  • 打赏
  • 举报
回复
不好意思.错了.
应该在外层再套一个列循环
MyNameIsPig 2008-01-17
  • 打赏
  • 举报
回复
select * from table
string abc;
for(int i=0;i<table.rows.count;i++)
{
abc+=table.rows[i].tostring();
}
consolf.wirle(abc);

行吗?
lijia4 2008-01-17
  • 打赏
  • 举报
回复
哦,
但是如果我有30多张表,有的表有70多个列,那我就要写好多个列名,
我的意思是可不可以用select * from Table
不管用什么方法把它输出结果形成一串字符串
xjjdanran 2008-01-17
  • 打赏
  • 举报
回复
Trigger是建立在物理表的基础上的,表的数据有改动时才会触发
inserted就是所对应物理表的一个复制,列都是知道的
lijia4 2008-01-17
  • 打赏
  • 举报
回复
是这样子的,这是一个Trigger然后
select * from inserted
将它的输出结果形成一串字符串
lijia4 2008-01-17
  • 打赏
  • 举报
回复
关键的是 ,表是动态的,我不知道这个表有多少列,列名是什么.
xjjdanran 2008-01-17
  • 打赏
  • 举报
回复
都是字符串字段?
select colA + ' '+ colB + ' ' + colC + ' ' + colD FROM TableA WHERE 条件

110,530

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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