程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 逆向思維撰寫SQL語句

逆向思維撰寫SQL語句

編輯:關於SqlServer
與SQL語句打交道可以說是每天都做的事情,但如何撰寫高效的語句則是我們最關心的問題, 一般的查詢語句會由於索引的不同,而導致查詢效率相差上百倍,一旦達到一定的數據量你就會發覺索引的好處,在本文中將不介紹索引,在之前的文章也提到如何有效的建立索引,本文將采用逆向思維來撰寫SQL語句,現舉例如下:


create table student(
id varchar(4) not null,
username varchar(20),
sex varchar(50),
age varchar(4),
class varchar(50),
constraint sy_test_key primary key ( id))

假設現在class條件如果傳入空的話,就查詢所有,如果不為空的話,就根據特定條件查找,一般的寫好將對其進行判斷,然後寫兩條SQL語句,例如:(假設傳入的班級變量為classStr)

if("".equals(classStr))//注意此處這種寫好優於classStr.equals(""),這樣寫的話,假如classStr傳入的為Null,則會報錯
   sql="select * from student";
  else
   sql = "select * from student where class='"+classStr+"'";

若采用逆向思維的話,則寫一條語句就可以解決上面的問題。

sql = "select * from student where ''='" + classStr + "' or '"+classStr+"'=class"

由上面語句可看出,如果classStr為空的話,則查詢所有,若classStr不為空的話,則根據其值進行查詢。

雖然不是很難的問題,但平時一點一滴的積累將有助於我們不斷提高自己,而且這種做法將使我們平時寫存儲過

程處理相關問題時更加方便。


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved