在進(jìn)行模糊查詢時(shí),一般使用的形式是 like 'key%',like '%key',like '%key%' 等幾種形式,其中key一般是固定的值,這樣從數(shù)據(jù)庫表中查出所需的數(shù)據(jù),但最近做的一個(gè)任務(wù)中有這樣的一需求,即key是變化的,根據(jù)不同的條件獲取不同的key值做為like中的條件,來獲取所需的數(shù)據(jù),想了一下,需要用到oracle中的字符串連接符:|| ,如下:
SELECT ue.* FROM user ue WHERE name LIKE '' || ( SELECT username FROM student st WHERE st.stud_id='1003') || '%'
user是一張記錄所有用戶名等其他比較全的數(shù)據(jù),然后根據(jù)學(xué)生ID查詢學(xué)生姓名,因?yàn)榭赡軙?huì)有姓名相同的學(xué)生,所以用此方法可以查詢出user表中所有姓名相似(如有王小和王小華,王小兵三個(gè)學(xué)生,而ID為1003的學(xué)生為王小,則這條語句就可以查出這三個(gè)人的相關(guān)數(shù)據(jù)).
當(dāng)然這里只是舉的一個(gè)簡單例子,我相信實(shí)際的生產(chǎn)應(yīng)用中是存在這樣的需求的,這里重要是介紹這種SQL語句的寫法,卻確的說是關(guān)于like的寫法,即用oracle的連接符來完成.
即:前面兩個(gè)引號(hào)的作用是生成一個(gè)引號(hào),||是字符串連接符,用來連接
SELECT username FROM student st WHERE st.stud_id=1003' 語句查詢得到的字符串,后面的||是用來連接%的,最后得到的語句大至如:
like 'aaa%' 的形式.即實(shí)現(xiàn)key關(guān)鍵字動(dòng)態(tài)變化的模糊查詢.
posted on 2008-05-31 17:18
henry1451 閱讀(3928)
評(píng)論(0) 編輯 收藏 所屬分類:
Oracle技術(shù)