在SQLite中将列中的所有值选择为字符串?
在SQLServer中,我可以借助游标在结果集中的每一行中循环并构建字符串。但是我不知道如何在SQLite中做同样的事情,这个任务不像所谓的数据透视,据我所知,我们必须知道要转换为列的确切行数。我的情况不同,我想将指定列的所有值选择为一个字符串,然后可以选择为1行的列,此列可以有各种值,具体取决于select查询。下面是它的外观示例:在SQLite中将列中的所有值选择为字符串?,sql,select,sqlite,system.data.sqlite,Sql,Select,Sqlite,System.data.sqlite,在SQLServer中,我可以借助游标在结果集中的每一行中循环并构建字符串。但是我不知道如何在SQLite中做同样的事情,这个任务不像所谓的数据透视,据我所知,我们必须知道要转换为列的确切行数。我的情况不同,我想将指定列的所有值选择为一个字符串,然后可以选择为1行的列,此列可以有各种值,具体取决于select查询。下面是它的外观示例: A | B ------------ 1 | 0 8 | 1 3 | 2 ... .... 我想
A | B
------------
1 | 0
8 | 1
3 | 2
... ....
我想把A列的所有值都选择成这样的字符串183。。。或1,8,3,。。。好的
这可以用作另一个SELECT中的列,我必须实现这一点,因为我需要在另一行中以逗号分隔的列表显示列a的每行上的所有子信息
我对此没有任何想法,它似乎需要一些过程语句,比如放在过程中,但SQLite限制了我如何处理循环、变量声明……我真的被卡住了。这种任务在编写数据库时非常常见,我没有理由拒绝这样做
请帮忙,我们将非常感谢您的帮助!谢谢 如果您只是想将A列中的所有值放入一条记录中,请使用GROUP_CONCAT:
主要的问题是你的思维方式像一个应用程序程序员。SQL为您做了很多事情
SELECT *
FROM tableA
WHERE A IN (SELECT A
FROM tableB)
无需使用游标、存储过程和多个查询。您想要的结果是什么?就1,8,3?这正是我想要的,非常感谢。我不认为它比SQL Server更简单有没有办法将group_concat与order by一起使用?我的意思是我想更改逗号分隔列表中值的顺序。谢谢大家!@KingKing-请看这篇文章-您需要使用子查询:-Best Regard我不太理解您的查询,a.id是什么?A是列而不是表。谢谢
SELECT *
FROM tableA
WHERE A IN (SELECT A
FROM tableB)