[英]SQL statement WHERE clause condition with multiple values
嘗試為WHERE子句條件編寫具有多個值的SQL語句時遇到問題。 因此,基本上,我將在地圖上繪制一個緩沖區,它將返回一個eventID列表。
因此,我創建了以下SQL語句並對其進行了測試:
SELECT count(*) AS totalRaces, a.races FROM bookedevent be INNER JOIN
account a
ON be.bookedEventBY = a.accountName
WHERE be.eventID = 70 OR be.eventID = 69 OR be.eventID = 55
GROUP BY a.races
有用。 但話又說回來,此SQL語句僅適用於3個eventID。 對於某些緩沖區,它可能最多返回10個eventID。 那么在這種情況下我應該如何格式化呢?
提前致謝。
使用IN子句
SELECT count(*) AS totalRaces, a.races FROM bookedevent be INNER JOIN
account a
ON be.bookedEventBY = a.accountName
WHERE be.eventID in(70,69,55)
GROUP BY a.races
您需要使用動態SQL。
然后,您可以將事件ID列表作為逗號分隔的列表傳遞。 然后,您可以動態更改IN子句中的項目數
declare @Events as varchar(1000)
declare @SQL as varchar(1000)
Select @Events = '55, 60, 70'
select @SQL = 'SELECT count(*) AS totalRaces, a.races
FROM bookedevent be
INNER JOIN account a ON be.bookedEventBY = a.accountName
WHERE be.eventID in (' + @Events + ')
GROUP BY a.races'
Exec (@SQL);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.