SQL Where子句的妙用
使用SQL Where子句可以實(shí)現(xiàn)很多我們所需的功能,下面就為您例舉一個(gè)使用SQL Where子句方法,希望對(duì)您學(xué)習(xí)SQL語句能有所啟迪。
當(dāng)為用戶建立列表窗口時(shí),往往需要為它指定一個(gè)數(shù)據(jù)檢索條件。當(dāng)檢索條件很簡(jiǎn)單或只有一個(gè)字段或者所有的條件字段都已經(jīng)確定時(shí),可以用一個(gè)簡(jiǎn)單的帶有檢索參數(shù)的SQL Where子句就可以完成。
對(duì)于帶有多種選擇的非常復(fù)雜的檢索參數(shù)與條件,你不得不借助于動(dòng)態(tài)SQL語句來修改數(shù)據(jù)窗口的SQL語句,但是如果你以使用靈活的SQL語句,就可以節(jié)約使用動(dòng)態(tài)SQL語句的時(shí)間。
例如,如果我們建立一個(gè)雇員選擇窗口,要求用戶可以根據(jù)雇員編號(hào)、姓名、地址或它們的組合進(jìn)行查找,我們可以定義三個(gè)適當(dāng)類型的檢索參數(shù),在PB的腳本中,還得定義三個(gè)數(shù)據(jù)窗口使用的檢索參數(shù)變量,而且還需要將這個(gè)能變量所對(duì)應(yīng)的Edit控件的Null if empty選項(xiàng)選中,若沒有此選項(xiàng)或沒有選中,就應(yīng)該編寫一段程序來實(shí)現(xiàn):當(dāng)字符串為空時(shí),將它置為NULL.
然后在SQL語句中你就可以為NULL值編寫代碼了:
- SELECT emp_no, emp_name, emp_addr1, emp_telno
- FROM employee
- WHERE ( emp_no = :al_emp_no OR :al_emp_no IS NULL )
- AND ( emp_name = :as_emp_name OR :as_emp_name IS NULL )
- AND ( emp_addr1 = :as_emp_addr OR :as_emp_addr1 IS NULL )
你還可以在字符串的未尾使用%,并將比較符號(hào)的兩端都轉(zhuǎn)換為小寫(或大寫),以使程序顯示更友好。比如,你可以在腳本中將變量轉(zhuǎn)換為小寫,然后在數(shù)據(jù)窗口中使用:
- ( Lower( emp_name ) LIKE :as_emp_name...
【編輯推薦】