gpt4 book ai didi

具有多列的 SQL 案例

转载 作者:行者123 更新时间:2023-12-02 04:52:03 29 4
gpt4 key购买 nike

您好,我已经浏览了“多列案例”问题,但没有看到与此相同的内容,所以我想我应该问一下。

基本上我有两个我想要连接的表(都是子查询的结果)。它们具有相同的列名称。如果我加入他们的 ID 和 SELECT *我得到的每一行都是这样的:

A.id, A.x, A.y, A.z, A.num, B.id, B.x, B.y, B.z, B.num

我想要的是一种只选择表中具有较低 num 值的列的方法。因此,在这种情况下,结果表将始终有 5 列, id, x, y, z, num ,我不在乎哪个表 id, x, y, z, num来自事后。如果它们相等,则两个表结果也可以。

SELECT CASE WHEN A.num < B.num THEN A.* ELSE B.* END FROM A JOIN B ON A.id=B.id

会很完美,但你只能在 CASE 语句中返回一列,我可以为每一列使用一个 CASE,但这看起来很浪费(我的实际数据库中每个表中有 8 个,所以我有 8 个 CASE 语句)。

顺便说一句,这是 SQLite。任何帮助将不胜感激!

<小时/>

编辑有关 A 和 B 的更多信息:A 和 B 来自这样的查询

中选择“认为案例陈述可能放在这里”

(SELECT id, x, y, z, num FROM Table1 a JOIN Table2 b ON a.id=b.id AND (y BETWEEN (53348574-3593) AND (53348574+3593)) AND (z BETWEEN (- 6259973-6027) AND (-6259973+6027)) JOIN Table3 c ON c.id= b.id GROUP BY a.id, c.r) A

加入

(SELECT id, x, y, z, num FROM Table1 a JOIN Table2 b ON a.id=b.id AND (y BETWEEN (53401007-3593) AND (53401007+3593)) AND (z BETWEEN (- 6397286-6027) AND (-6397286+6027)) JOIN Table3 c ON c.id= b.id GROUP BY a.id, c.r ) B ON A.id=B.id

因此,如果您想知道为什么数字很大,它会连接两个基于地理位置制作的表,并且需要根据在任一位置找到的内容的属性来决定从哪个表中获取数据。

最佳答案

尝试

select A.id, A.x, A.y, A.z, A.num from  A JOIN B ON A.id=B.id where a.num<b.num
union
select b.id, b.x, b.y, b.z, b.num from A JOIN B ON A.id=B.id where b.num<a.numhere

关于具有多列的 SQL 案例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12746407/

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