如何解决全部 PostgreSQL
我有以下表结构:
| id | object_id | status_id |
------------------------------
| 1 | 12 | 1 |
| 2 | 12 | 2 |
| 3 | 18 | 5 |
我需要选择所有处于状态 1 和 2 中的 object_id
。也就是说,类似这样的:select object_id from table_name where status_id in (1,2)
,但我需要 status_id
不在所列之一中值,但完全在两者中。也就是说,从上表中,我应该返回值 12(因为状态中的 object_id
等于 12)。这怎么办?
解决方法
select object_id
from table_name
where status_id in (1,2)
group by object_id
having count(distinct status_id) = 2
,
如果您只需要状态 1 或 2 的唯一对象 ID,那么您可以使用 try { PrivateKey privateKey = null;
byte[] keydata = getKeyData(filePath);
File file = new File(filePath);
String key = new String(Files.readAllBytes(file.toPath()),Charset.defaultCharset());
String privateKeyPEM = key
.replace("-----BEGIN PRIVATE KEY-----","")
.replaceAll(System.lineSeparator(),"")
.replace("-----END PRIVATE KEY-----","")
.replace("\n","");
byte[] encoded = Base64.getDecoder().decode(privateKeyPEM);
KeyFactory keyFactory1 = KeyFactory.getInstance("RSA");
PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(encoded);
privateKey= keyFactory1.generatePrivate(keySpec);
关键字。:
distinct
,
要获取那些恰好具有这两个状态值的对象 ID,您可以使用
select object_id
from the_table
group by object_id
having bool_and(status_id in (1,2))
and count(distinct status_id) = 2
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。