SQL 語句判斷記錄是否存在(最簡潔簡單性能最優)


今天查了下,發現網上的沒有一個sql語句寫的好的。

判斷記錄是否存在,要不是語句不夠簡潔,要不就是性能有很大問題。

 

我進行了優化后,最簡潔簡單性能最優的的sql語句,用來判斷表中的記錄是否存在:

select isnull((select top(1) 1 from tableName where conditions), 0)

結果為 1,則說明記錄存在;結果為 0,則說明記錄不存在。 

 

網上的常見的有問題的語句:

 

錯誤1:

select COUNT(*) from tableName where conditions

count(*) 計算會對聚集索引進行掃描和計算,reads 特別多,特別是 cpu 資源占用極大。

 

錯誤2:

if exists (select * from tableName where conditions) select '1' else select '0'

這種方法稍微有點靈性,但是卻很不簡潔。

同時由於 select * 前面有 exists ,所以該語句並沒有性能問題,只是語法不夠簡潔

 

本文禁止任何網站轉載,嚴厲譴責那些蛀蟲們。
本文首發於,博客園,請搜索:博客園 - 尋自己,查看原版文章


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM