gpt4 book ai didi

SQL 如果存在则选择任何其他记录,如果没有其他则选择默认值

转载 作者:行者123 更新时间:2023-12-04 13:40:59 26 4
gpt4 key购买 nike

我希望选择任何其他多条记录(如果存在)(不包括值 9999)- 如果除了一条值为 9999 的记录外不存在其他记录,则只需要返回一条。

换句话说,想象一下:

  | FIELD1 | FIELD2 | FIELD3 |
1.| AAA | BBB | 1234 |
2.| AAA | BCB | 1234 |
3.| AAA | ABB | 1234 |
4.| AAA | BDB | 9999 |
5.| AAA | SDD | 1234 |

所以,我只想要第 1、2、3 和 5 行,其中 FIELD1 = 'AAA' 而不是第 4 行。如果不存在其他行,其中 FIELD1 = 'AAA' 和 FIELD3 = '9999' 那么它应该只返回一个。

最佳答案

如果我没记错的话:

SELECT * 
FROM TestTable as T
WHERE
(
(Field3 <>9999)
OR
(
(Field3 = 9999)
AND
NOT EXISTS (SELECT * FROM TestTable
WHERE Field1 = T.Field1 AND Field3 <>9999)
)
);

对于表格:

AAA BBB 1234
AAA BCB 1234
AAA ABB 1234
AAA BDB 9999
AAA SDD 1234
BBB BDB 9999
CCC BBB 1234
CCC BCB 1234
CCC ABB 1234
CCC BDB 9999
CCC SDD 1234

输出将是:

AAA BBB 1234
AAA BCB 1234
AAA ABB 1234
AAA SDD 1234
BBB BDB 9999
CCC BBB 1234
CCC BCB 1234
CCC ABB 1234
CCC SDD 1234

关于SQL 如果存在则选择任何其他记录,如果没有其他则选择默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40886445/

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