在SQL Server 2005 中使用CASE 語句更新選擇性記錄
給定的SQL 語句使用CASE 語句記錄根據LASTN 更新特定價值觀。然而,一個問題是 ELSE 條件包含所有行,從而導致不必要的處理。為了解決這個問題,提出了一個最佳化的解決方案。
為了盡量減少不必要的掃描,可以將WHERE 子句合併到語句中,如下所示:
UPDATE dbo.TestStudents SET LASTNAME = CASE WHEN LASTNAME = 'AAA' THEN 'BBB' WHEN LASTNAME = 'CCC' THEN 'DDD' WHEN LASTNAME = 'EEE' THEN 'FFF' ELSE LASTNAME END WHERE LASTNAME IN ('AAA', 'CCC', 'EEE');
在此修改後的程式碼中,WHERE子句將更新操作僅限於感興趣的LASTNAME 值(“AAA”、“CCC”和“EEE”)。這可確保未受影響的行保持不變,同時有效執行預期更新。
以上是如何使用 CASE 語句和 WHERE 子句最佳化 SQL Server 更新?的詳細內容。更多資訊請關注PHP中文網其他相關文章!