SQLSERVER不拼接SQL如何實現(xiàn)條件查詢
遇到條件查詢,比如用戶可以在界面上選擇想要查詢的條件。
我們常用的方法是拼接SQL,如下:
declare @id int, @SQL NVARCHAR(50) = '' set @SQL = 'select * from user where 1=1 ' if @id is not null begin set @SQL = @SQL + ' and id = ' + @id end
但是如果需要查詢的參數(shù)很多,這樣的SQL調(diào)試起來相當(dāng)麻煩,我們甚至需要輸出最后拼接的SQL,然后拷貝出來單獨調(diào)試。
可以使用另外一種方法:
declare @id int, @name NVARCHAR(50) = '' select * from user where (ISNULL(@id,'') = '' or id = @id) and (ISNULL(@name,'') = '' or name = @name)
實現(xiàn)原理:
ISNULL(@id,'') = '' OR id=@id
1.假如用戶沒有選擇參數(shù)@id,則滿足左邊的條件ISNULL(@id,'') = ''
2. 假如用戶選擇了參數(shù)@id,則滿足右邊的條件id=@id,它們之間是or關(guān)系,所以滿足任意一個就行,就不需要寫IF去一個一個判斷了
到此這篇關(guān)于SQLSERVER不拼接SQL如何實現(xiàn)條件查詢的文章就介紹到這了,更多相關(guān)SQL不拼接條件查詢內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
sqlserver數(shù)據(jù)庫大型應(yīng)用解決方案經(jīng)驗總結(jié)
對于一個大型的互聯(lián)網(wǎng)應(yīng)用,每天百萬級甚至上億的PV無疑對數(shù)據(jù)庫造成了相當(dāng)高的負載。對于系統(tǒng)的穩(wěn)定性和擴展性造成了極大的問題2013-10-10
SQLServer用存儲過程實現(xiàn)插入更新數(shù)據(jù)示例
這篇文章主要介紹了SQLServer如何用存儲過程實現(xiàn)插入更新數(shù)據(jù),需要的朋友可以參考下2014-08-08
SQL 雙親節(jié)點查找所有子節(jié)點的實現(xiàn)方法
下面小編就為大家?guī)硪黄猄QL 雙親節(jié)點查找所有子節(jié)點的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-05-05
如何安裝 SQL Server 2016及SQL Server Man
這篇文章主要介紹了如何安裝 SQL Server 2016及SQL Server Management Studio安裝配置,本文通過圖文并茂的形式給大家介紹的非常詳細,需要的朋友可以參考下2024-12-12
針對Sqlserver大數(shù)據(jù)量插入速度慢或丟失數(shù)據(jù)的解決方法
這篇文章主要介紹了針對Sqlserver大數(shù)據(jù)量插入速度慢或丟失數(shù)據(jù)的解決方法,很有實用價值,需要的朋友可以參考下2014-07-07

