gpt4 book ai didi

sqlite - 按照另一列的顺序选择表的子集

转载 作者:行者123 更新时间:2023-12-02 02:53:48 24 4
gpt4 key购买 nike

我有 2 个这样的表(简化的示例):

create table T (i integer, a text);
insert into T values (3,'ww');
insert into T values (1,'ee');
insert into T values (5,'nn');
insert into T values (2,'kk');
insert into T values (4,'ss');

create table U (i integer);
insert into U values (2);
insert into U values (3);
insert into U values (5);
insert into U values (1);

select rowid, i from U;
rowid i
----- --
1 2
2 3
3 5
4 1

select * from T where i in (select i from U order by rowid);
i a
----- ----------------
3 ww
5 nn
2 kk
1 ee

我需要按照与内部选择相同的顺序在 in(...) 中收集 i,例如:

select * from T where i inUnsorted (select i from U order by rowid);
i a
----- ----------------
2 kk
3 ww
5 nn
1 ee

这可能吗?

最佳答案

在 SQL 中,除非使用 ORDER BY,否则查询是未排序的,因此外部查询需要此子句。

无论如何,您可以简单地使用相关子查询查找该值:

SELECT *
FROM T
WHERE i IN (SELECT i
FROM U)
ORDER BY (SELECT rowid
FROM U
WHERE U.i = T.i);

关于sqlite - 按照另一列的顺序选择表的子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38180315/

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