SQL WHERE子句中的CASE語句
在SQL中,CASE語句提供了一個條件評估機制。它允許您指定不同的條件,並根據這些條件傳回相應的數值。這在WHERE子句中特別有用,可以根據不同的條件過濾資料。
假設下列情境:您需要根據位置類型參數「@locationType」和位置ID參數「@locationID」的值,從名為「viewWhatever」的檢視中擷取資料。位置類型可以是'location'、'area'或'division'。
使用CASE語句
要在WHERE子句中使用CASE語句實現此功能,您可以如下建立查詢:
<code class="language-sql">SELECT column1, column2 FROM viewWhatever WHERE @locationID = CASE @locationType WHEN 'location' THEN account_location WHEN 'area' THEN xxx_location_area WHEN 'division' THEN xxx_location_division END</code>
說明
避免多餘的等號運算子
請注意,在提供的範例中,每個WHEN子句末尾的「= @locationID」部分是不正確的。 CASE語句本身會指派正確的欄位與「@locationID」進行比較。
動態SQL
如果在撰寫查詢時不知道您的位置類型和列名,您可以使用預存程序或動態SQL動態建立CASE語句。
以上是如何在SQL WHERE子句中使用CASE語句動態過濾資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!