簡體   English   中英

SQL:當PK等於同一字段的兩個不同行中的兩個特定值時,返回值

[英]SQL: return values when PK equals two specific values in two different rows on the same field

我試圖返回SAME id分別在23和12中的行(這只是一個示例……我有30K記錄)

ID: ASDJKGFJKBQGW Number:23
ID: ASDJKGFJKBQGW Number:12
ID: ASDJKGFJKBQGW Number:43
ID: ASDJKGFJKBQGW Number:67
ID: ASDJKGFJKBQGW Number:32

這樣做: select * from table where Number=23 and Number=12

我需要為ID聲明一個變量並執行while循環嗎?

While @ID is the same
select * from table where Number = 23 and Number = 12

謝謝

這應該可以解決問題

select * from table where Number in (23, 12)

要么

select * from table where Number = 23 or Number = 12

編輯

像這樣的東西:

   select id from table where number in (23,12) 
   group by id
   having count(*) = 2

如果數字對於每個ID可能出現多次,則可以使用子查詢

   select id from 
   ( select distinct id, number from table ) x
   where number in (23,12) 
   group by id
   having count(*) = 2
Select * from table1
Where number in (14,23) and id in(
Select id from table1 
Where number in (14,23)
Group by id
Having count(distinct number) = 2)

內部子查詢使用Haveing子句,該子句給出確切的行數2。加上不重復的子句,您肯定會得到這些行

暫無
暫無

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

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