gpt4 book ai didi

SQLite 从多行中选择数据作为一行返回

转载 作者:IT王子 更新时间:2023-10-29 06:32:05 28 4
gpt4 key购买 nike

我想知道是否可以在 SQLite 中使用 SELECT 语句将两行中的数据合并为一行,类似于下面 SQL Server 论坛中建议的方法。

考虑以下基于 SQL Server 的场景(取自 http://forums.aspfree.com/microsoft-sql-server-14/merge-the-two-rows-in-one-row-245550.html )

假设有一张 table

Emp

编号 |姓名|
1 | x |
1 | P |
2 |是 |
2 |问 |
3 |瓦 |

我们希望输出 select 语句的结果数据:

Emp_Data

编号 |名称-1 |名字-2 |
1 | × | P |
2 |是 |问 |
3 |瓦 | |

帖子中的答案建议将以下 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 是否可以使用嵌套的 SELECT 语句生成列 [Name-1] 和 [Name-2],就像我们在 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 从多行中选择数据作为一行返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6038351/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com