SQL 中的多條件查詢

2022-07-03 13:48:18 字數 969 閱讀 9763

在應用程式開發中,多條件查詢是個經常遇到的情況,最簡單最麻煩的方法是把所有的可能情況都考慮到,但是無疑是繁瑣的,而且很容易漏掉可能的情形,下面是sql語句實現多條件查詢的情況

select * 

from table

where table .a=case when isnull(a,'')!='' then a else table .a end

and table .b=case when isnull(b,'')!='' then b else table .b end

and table .c=case when isnull(c,'')!='' then c else table .c end

and table .d=case when isnull(d,'')!='' then d else table .d end

當查詢條件a,b,c,d某個為空的時候,由於isnull的存在,會被替換為'',。

上面的程式需要注意的是兩點:

(1)case的使用方法

(2)null的使用方法

這兩個函式在sql中都有詳細的介紹,不再贅述!

searched case function:

case

when boolean_expression then result_expression

[ ...n ]

[ else else_result_expression

] end

使用指定的替換值替換 null。

isnull(check_expression,replacement_value)

需要注意的是check_expression可以隱式轉換為replacement_value

SQL多條件查詢子查詢SQL多條件查詢子查詢

多條件搜尋時where 1 1並不高效,如果使用這種方法,在資料庫中會做全表查詢 對每行資料都進行掃瞄比對 會無法使用索引等優化查詢的策略,建立的索引會暫時失效。case函式 case必須和end一起使用,下接when then select 數學成績 case when math 100 then...

Sql多條件查詢

sql 多條件查詢的一種簡單的方法 以前我們做多條件查詢,一種是排列結合,另一種是動態拼接sql 如 我們要有兩個條件,乙個日期 adddate,乙個是 name 第一種寫法是 if adddate is not null and name select from table where addda...

多條件查詢的sql

用程式來生成。例如 四個框分別為 txt1,txt2,txt3 對應字段分別為 key1,key2,key3,key4 查詢的表名為 table 程式如下 txt1 requtst.form txt1 取得變數 txt2 requtst.form txt2 txt3 requtst.form txt...