在SQLite中将列中的所有值选择为字符串?

时间:2013-04-21 14:26:26

标签: sql select sqlite system.data.sqlite

在SQL Server中,我可以在Cursor的帮助下完成此操作(循环遍历结果集中的每一行并构建我的字符串)。但我不知道如何在SQLite中做同样的事情,这个任务不像所谓的Pivoting,据我所知,我们必须知道我们想要转向列的确切行。我的情况不同,我想选择一个指定列的所有值为一个字符串(然后可以选择为1行的列),这个列可以有各种值取决于SELECT查询。以下是它的外观示例:

A    |    B    
------------
1    |    0
8    |    1
3    |    2
...     ....

我想将A列的所有值都选择为字符串,如“183 ......”(或“1,8,3,......”就可以了)。

这可以用作另一个SELECT中的列,我必须实现这个,因为我需要将所有子信息(在列A的每一行上)显示为另一行中以逗号分隔的列表。

我对此没有任何想法,它似乎需要一些程序性语句(例如放在一个程序中)但SQLite对如何处理循环,变量声明有很大的限制......我真的卡住。编程数据库时这种任务很常见,我没有理由拒绝这样做。

请帮忙,非常感谢您的帮助!谢谢!

2 个答案:

答案 0 :(得分:11)

如果您只是想将A列中的所有值都放到一条记录中,那么请使用GROUP_CONCAT

select group_concat(a, ',')
from yourtable

SQL Fiddle Demo

答案 1 :(得分:0)

主要问题是你像一个应用程序员一样思考。 SQL为你做了很多事情。

SELECT * 
  FROM tableA
 WHERE A IN (SELECT A 
                  FROM tableB)

无需使用游标,存储过程和多个查询。