1、DISTINCT用法:
SELECT DISTINCT A.NAME , A.STUDENT_ID , A.SEX FROM TABLE STUDENT
這條SQL語句是從學(xué)生表里查詢了姓名,學(xué)號,性別,但是DISTINCT的查詢規(guī)則是只要有1個(gè)不同,就是符合條件的。
例: 源數(shù)據(jù) 查詢結(jié)果
ID NAME SUTDENT_ID SEX NAME STUDENT_ID SEX
1 張明 101 男 張明 101 男
2 張明 102 男 張明 102 男
3 張明 101 男 李倩 103 女
4 李倩 103 女
2、WMSYS.WM_CONCAT用法:用來連接字符,中間用 , 隔開。
SELECT WMSYS.WM_CONCAT(STUDENT_ID) AS STUDENT_ID FROM STUDENT GROUP BY (NAME)
查詢結(jié)果:101,102
3、SUBSTR用法:SUBSTR(字符串,起始位置,截取長度),默許查找順序從左到右,當(dāng)起始位置為負(fù)數(shù)的時(shí)候,從右側(cè)開始查找。
SELECT SUBSTR('slighthost.com' , 0 , 1) AS M FROM DUAL //返回結(jié)果是s ,從字符串的第1個(gè)位置開始截取長度為1的字符串。
SELECT SUBSTR('slighthost.com', 1, 1) AS M FROM DUAL //返回結(jié)果是s,0和1都表示截取的開始位置為第1個(gè)字符。
SELECT SUBSTR('slighthost.com' , 14, 1) AS M FROM DUAL //返回結(jié)果是m,從最后1個(gè)字符開始截取。
SELECT SUBSTR('slighthost.com' , ⑴, 1) AS M FROM DUAL //返回結(jié)果是m,⑴表示從最后1個(gè)字符開始截取。
SELECT SUBSTR('slighthost.com' , ⑻, 3) AS M FROM DUAL //返回結(jié)果是hos,⑻表示從右到左數(shù)的第8個(gè)字符開始截取。
4、INSTR用法:INSTR(源字符串,要查找的字符串,從第幾個(gè)字符開始,要找到第幾個(gè)匹配的序號),查找順序與SUBSTR相同。
SELECT INSTR('collaboration floor','or',1,2) AS M FROM DUAL // 返回結(jié)果是18
SELECT INSTR('collaboration floor','or',⑴,2) AS M FROM DUAL // 返回結(jié)果是7
SELECT SUBSTR('collaboration floor' , INSTR('collaboration floor','or',⑴,2) , 3 ) FROM DUAL //返回結(jié)果是ora
5、MERGE INTO用法:
在數(shù)據(jù)操作時(shí),有時(shí)可能需要將1個(gè)數(shù)據(jù)表的某些字段添加或更新到另外一張數(shù)據(jù)表里,這時(shí)候就有1個(gè)高效力的SQL語句。
merge into a
using (select b.* from a, b where a.id = b.id and a.qty <> b.qty ) b
on (a.id = b.id) //這條語句是說明兩個(gè)表拷貝的連接條件
when matched then //如果存在a.id = b.id,那末就更新a.qty = b.qty
update set a.qty = b.qty
when not matched then //如果不存在a.id=b.id,那末就將b中的id、qty添加到a表中
insert (a.id,a.qty)
values(b.id,b.qty)