sql - 我想写一个查询,我只能选择特定的行,并想忽略 SQL 中的一些不同的行
问题描述
我有一张表,其中 BrandId 在具有不同状态(如pending和Running)的表中重复多次。我想要状态仅处于待处理状态的行。如果任何 BrandId 的状态为挂起和正在运行,那么我们不希望在输出中出现这个,我想忽略这些 BrandId 并且不希望在输出中出现该行。
我只想要那些状态仅为待定的 BrandId。
谁能告诉我有关查询以获得所需结果的信息?
解决方案
使用 not exists 过滤那些只有待处理的记录,如下所示:
SELECT distinct ID, BRANDID, STATUS FROM TABLE1 A WHERE STATUS = 'pending'
AND NOT EXISTS(SELECT 1 FROM TABLE1 B WHERE A.ID = B.ID AND A.BRANDID = B.BRANDID AND B.STATUS = 'Running');
推荐阅读
- go - 获取未定义的嵌套结构属性
- c - 我的仅管道三通工作有什么问题?
- c - 如何获得作为输入输入的数字的最小倍数,而不是输入的数字本身?
- linux - 可执行文件中的共享库名称与文件名不同
- javascript - Babel 7 不会在 IE11 中填充 Promise、Fetch 和一些 JavaScript 文件(例如在供应商文件中)
- python - Python - Powershell/CMD 根本不会打开解释器
- node.js - Trying to create a shortcode to insert a react app
- jwt - 当带有 JWKS URL 的验证令牌时,Keycloak 与外部身份提供者的集成失败
- python-3.x - Black python formatter not working in zsh
- sql-server - How to determine if given table is memory optimized?