在SQL Server中,我可以在Cursor的帮助下完成此操作(循环遍历结果集中的每一行并构建我的字符串)。但我不知道如何在SQLite中做同样的事情,这个任务不像所谓的Pivoting,据我所知,我们必须知道我们想要转向列的确切行。我的情况不同,我想选择一个指定列的所有值为一个字符串(然后可以选择为1行的列),这个列可以有各种值取决于SELECT查询。以下是它的外观示例:
A | B
------------
1 | 0
8 | 1
3 | 2
... ....
我想将A列的所有值都选择为字符串,如“183 ......”(或“1,8,3,......”就可以了)。
这可以用作另一个SELECT中的列,我必须实现这个,因为我需要将所有子信息(在列A的每一行上)显示为另一行中以逗号分隔的列表。
我对此没有任何想法,它似乎需要一些程序性语句(例如放在一个程序中)但SQLite对如何处理循环,变量声明有很大的限制......我真的卡住。编程数据库时这种任务很常见,我没有理由拒绝这样做。
请帮忙,非常感谢您的帮助!谢谢!
答案 0 :(得分:11)
如果您只是想将A列中的所有值都放到一条记录中,那么请使用GROUP_CONCAT
:
select group_concat(a, ',')
from yourtable
答案 1 :(得分:0)
主要问题是你像一个应用程序员一样思考。 SQL为你做了很多事情。
SELECT *
FROM tableA
WHERE A IN (SELECT A
FROM tableB)
无需使用游标,存储过程和多个查询。