加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

SQLite从多行返回的数据作为一行返回

发布时间:2020-12-12 19:13:40 所属栏目:百科 来源:网络整理
导读:我想知道是否可以在SQLite中使用SELECT语句将两行中的数据合并为一个,类似于下面的SQL Server论坛中的建议. 考虑下面基于SQL Server的场景(取自http://forums.aspfree.com/microsoft-sql-server-14/merge-the-two-rows-in-one-row-245550.html) 鉴于有一张桌
我想知道是否可以在SQLite中使用SELECT语句将两行中的数据合并为一个,类似于下面的SQL Server论坛中的建议.

考虑下面基于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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读