Concat数据库表1在一行中记录多个记录字符串

时间:2012-10-16 10:24:27

标签: android sql sqlite cursor

我有一个表格和记录,如:

EmployeeName
------------
Ram
Laxman
Bharat
Shatrugn

我希望输出以连接单个查询中的一行中的所有值:

我想要的结果如下:

Ram,Laxman,bharat,shatrugn

Concat字符串,(逗号)在单行中.. 但我不知道如何使用光标在android中连接...

3 个答案:

答案 0 :(得分:4)

在SQLite中,您可以使用GROUP_CONCAT()

select Group_Concat(EmployeeName)
from table1

请参阅SQL Fiddle with Demo

如果您要返回多个字段,那么您将使用GROUP BY查询,类似于:

select id, Group_Concat(EmployeeName)
from table1
group by id

请参阅SQL Fiddle with Demo

答案 1 :(得分:2)

     String values;
       if (cursor.moveToFirst()) {
                do {

               values=values + cursor.getString(0)+",";

                } while (cursor.moveToNext());

删除最后一个逗号

if (values.length() > 0)
 {
    values= values.substring(0,values.length() - 1);    
  }

答案 2 :(得分:2)

这是我用过的代码......希望它可以帮到你。

 private SQLiteDatabase myDataBase;
 Cursor cursor;
 String S="";
 String myPath2 = yourDBpath + yourDBNAME;
 try{
 myDataBase = SQLiteDatabase.openDatabase(myPath2, null,SQLiteDatabase.OPEN_READWRITE);
 String sql="your query";
 cursor=myDataBase.rawQuery(sql, null);
if(cursor != null)
{
   while(cursor.moveToNext())
   {
    S=S.append(cursor.getString(0));
    }
}
  } 
}catch(Exception e){

        }finally{
        myDataBase.close();
        }

最终结果将出现在String S中。