
考虑下面基于sql Server的场景(取自http://forums.aspfree.com/microsoft-sql-server-14/merge-the-two-rows-in-one-row-245550.html)
鉴于有一张桌子
EMP
ID |名称|
1 | x |
1 | P |
2 | y |
2 |问|
3 | W |
我们希望select语句中的结果数据输出:
Emp_Data
ID |名字-1 |名字-2 |
1 | x | P |
2 | y |问|
3 | w | |
帖子中的答案表明以下sql是一种可能的解决方案:
SELECT a.ID,[name-1] = ISNulL(( SELECT top 1 name FROM emp WHERE ID = a.ID),''),[name-2] = ISNulL(( SELECT top 1 b.name FROM emp b WHERE b.ID = a.ID AND name NOT IN( SELECT top 1 name FROM emp WHERE ID = b.ID )),'') FROM emp a GROUP BY a.ID
使用sqlite可以生成列[name-1]& [name-2]使用嵌套的SELECT语句,就像我们在sql Server中可以做的那样?
SELECT a.ID,COALESCE(a.name,'') as "name-1",COALESCE((SELECT b.name FROM Emp b WHERE b.ID = a.ID AND b.rowID != a.rowID liMIT 1),'') as "name-2"FROM emp a GROUP BY a.ID总结
以上是内存溢出为你收集整理的SQLite从多行返回的数据作为一行返回全部内容,希望文章能够帮你解决SQLite从多行返回的数据作为一行返回所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)