我想知道是否可以使用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|Q
3|W
我们希望输出select语句的结果数据:
Emp_Data
Id | Name-1 | Name-2
1|x|P
2|y|q|
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,是否可以像在SQL Server中那样使用嵌套的SELECT语句生成列Name-1 & Name-2?
发布于 2011-05-18 10:19:07
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发布于 2011-07-21 18:07:11
试试这个:
根据id从emp分组中选择id,group_concat(名称);
;)
发布于 2011-10-26 22:11:24
道格的解决方案对我不起作用。然而,下面的代码确实适用于我,但它非常慢……
SELECT
a.ID,
a.Name AS Name1,
(SELECT b.Name FROM Emp b
WHERE b.ID = a.ID
AND b.Name != a.Name LIMIT 1) AS Name2
FROM emp a
GROUP BY a.IDhttps://stackoverflow.com/questions/6038351
复制相似问题