簡體   English   中英

根據同一行中的另一個值從行中選擇某個值

[英]Selecting certain value from row based on another value in same row

我有一張下表,其中包含以下數據:

在此處輸入圖片說明

現在,我想獲取所有在B列中不具有值5的用戶(僅與眾不同)。我的意思是user1在某行中具有值5,然后關閉所有用戶1行。

應該產生以下結果:user2(因為值為空)user3(沒有值5)

我怎樣才能做到這一點?

也許最簡單的方法是用戶聚合:

SELECT ColumnA
FROM yourTable
GROUP BY ColumnA
HAVING COUNT(CASE WHEN ColumnB = 5 THEN 1 END) = 0;

一種方法是聚合:

select columnA
from t
group by columnA
having sum(case when columnB = 5 then 1 else 0 end) = 0;

您可以通過減號運算符執行此操作

SELECT distinct colA
FROM have
WHERE colB not in(5)
MINUS
SELECT distinct colA 
FROM have
WHERE colB=5;

使用NOT EXISTS您可以獲得結果

SELECT DISTINCT T1.ColumnA
FROM TableName T1
WHERE NOT EXISTS (
   SELECT * FROM TableName T2 WHERE T2.ColumnA = T1.ColumnA AND T2.ColumnB <> 5
)

另一種方法-

SELECT DISTINCT T1.ColumnA
FROM TableName T1
WHERE T1.ColumnA NOT IN 
(
   SELECT T2.ColumnA FROM TableName T2 WHERE T2.ColumnB = 5
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM