2

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

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

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

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

我对此一无所知,它似乎需要一些过程语句(例如放置在一个过程中),但 SQLite 对我如何处理循环、变量声明、......我真的被卡住了。这种任务在数据库编程时很常见,我没有理由拒绝这样做。

请帮助,您的帮助将不胜感激!谢谢!

4

2 回答 2

11

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

select group_concat(a, ',')
from yourtable

SQL 小提琴演示

于 2013-04-21T14:32:17.790 回答
0

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

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

无需求助于游标、存储过程和多个查询。

于 2013-04-21T14:35:40.127 回答