SQL语句,字段表里某列数据变为用逗号分隔的字符串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL语句,字段表里某列数据变为用逗号分隔的字符串相关的知识,希望对你有一定的参考价值。

SQL语句,字段表里某列数据变为用逗号分隔的字符串形式。 select a from A
a



把最后的值变为‘我,你,他’

参考技术A 感觉你只能使用存储过程,使用DECLARE CURSOR 遍历使用记录,然后将A 列合并起来,
最后将合并 的值输出。
参考技术B   很简单
  SELECT wmsys.wm_concat(a)
  FROM A本回答被提问者采纳
参考技术C sqlserver2005以上版本
select stuff((select ','+a from a for xml path('')),1,1,'')
参考技术D 我,你,他 是3条记录吗?追问

不是,任意的,根据某些条件,查找出了一些数据,然后把这几个数据变为用逗号分隔开的一个字符串。这样可以当数据存入其他表里

追答

declare @string varchar(100)
set @string=''
select @string=@string+','+cast(字段名 as varchar) from 表名 order by id;
select STUFF(@string,1,1,'')

怎样用sql语句取表里第n条记录的数据啊(用Delphi实现)

谢谢大家的回答
是Access数据库
xuyucheng26 的方法不能取具体第几条记录的数据

设置 str 为字符串变量
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add("SELECT * FROM 表名");
ADOQuery1.Open;
While ADOQuery1.Eof
begin
str:=ADOQuery1.FieldByName('字段名称').AsString;
ADOQuery1.Next;
end;
取具体第几条记录的数据:
记录数 n :=ADOQuery1.RecordCount;
在 While 中加你指定的条件即可.
参考技术A 这个好办,我们假定从Table的表中取第n条记录,同时假定表TableA的内码为:Internalid,则可得出如下查询
Select top n from TableA where Internalid not in (Select top n-1 from tableA)
参考技术B 要看是什么数据库,oracle可用rownum比较简单。

以上是关于SQL语句,字段表里某列数据变为用逗号分隔的字符串的主要内容,如果未能解决你的问题,请参考以下文章

SQL语句怎么循环取出一个表里面的所有字段,用逗号间隔

sql字段里有逗号隔开的数据,怎么取值

从sql表里截取字符串中的日期

急急急,Sql查询一个字段是不是存在某一个值,怎么写查询语句?

mysql查询某数字在某字段以逗号隔开的字符里面

SQL 怎样将查询出某列的多行数据,变为一行显示? 通过SQL语句查询出结果 AutoID cT