sql - 检查 where 子句中的计数值 - PostgreSQL
问题描述
假设我有以下表结构:
create table sometable (id serial, name varchar(20), Delete_Flag smallint);
带有以下条目:
id | name | delete_flag
----+------+-------------
1 | AA | 1
2 | BB | 1
是否可以编写查询来检查 sometable 中的总条目数是否为 2 并且这两个条目的名称 = ' AA ' 和' BB '?不想写函数,只想写一个简单的查询。
就像返回TRUE如果某个表的 count(*) =2 并且名称在 ('AA','BB')
否则返回FALSE
谢谢
解决方案
你可以写:
select (array_agg(name order by name) = array['AA', 'BB']) as flag
from sometable t
推荐阅读
- javascript - Vue Router this.$router.push 对方法不起作用
- r - 如何在R中绘制范围条?
- python - 始终打印 ] -100 之间的随机值;100 [ 作为点之前的 2 位数字和点之后的 2 位数字,python 3
- java - 在 scala 中覆盖 java 接口会产生“方法不会覆盖任何内容”。不使用覆盖会产生“范围内已定义的方法”
- java - 如何在 FirebaseRecyclerAdapter 中发出 2 个查询
- c# - 处理 Cursor 类时防止异步调用
- c# - 如何删除 WPF DataGrid 中的多余行?
- jquery - 剑道网格输入文本框不传递值
- android - Android Studio的模拟器保存状态慢的原因是什么?
- autosys - Autosys 将触发器作业名称作为命令参数传递