簡體   English   中英

SQL語句WHERE子句條件具有多個值

[英]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.

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