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

2021-10-10 14:43:18 字數 1207 閱讀 5135

多條件搜尋時where 1=1並不高效,如果使用這種方法,在資料庫中會做全表查詢(對每行資料都進行掃瞄比對),會無法使用索引等優化查詢的策略,建立的索引會暫時失效。

case函式(case必須和end一起使用,下接when then)

select 

數學成績=

(case

when math>100 then '優',

when math>90 then '良',

when math>80 then '中',

else '不及格'

end)

ase後面不接什麼,是在乙個範圍中。

select 

數學成績=

(case (math)

when 100 then 1,

when 99 then 2,

when 98 then 3

end

這邊是單獨的值,數學成績為100顯示1,99為2,98為3

案例在訂單表中,統計每個銷售員的總銷售金額,列出銷售員名,總銷售金額,稱號(>6000金牌,>5500銀牌,>4500銅牌,否則為普通)

select 

銷售員,

銷售員金額=sum(銷售數量*銷售**),

稱號=(

case

when sum(銷售數量*銷售**)>6000 then '金牌',

when sum(銷售數量*銷售**)>5500 then '銀牌',

when sum(銷售數量*銷售**)>4500 then '銅牌',

else '鐵牌'

end)

from myorders group by 銷售員

子查詢

把乙個查詢的結果在另乙個查詢中使用就叫做子查詢(將乙個查詢語句作為乙個結果集供其他sql語句使用)

例如: select * from(select col1,col2 from tab) as t

將括號內的內容作為t表,進行查詢

子查詢基本分類或者 or 也 and

例子:

select * from(select english from tab) as t where english>90;

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...

SQL語句多條件查詢

sql多條件查詢中如果有and和or,and的優先順序高於or,如果不加括號會先執行and,然後再執行or 資料表 一 查詢時先且查詢,則先and條件查詢,查詢結果與or後面的條件進行或查詢 sql語句 select from ceshi where name a and age 10 or 1查詢...