1、DISTINCT用法:
SELECT DISTINCT A.NAME , A.STUDENT_ID , A.SEX FROM TABLE STUDENT
这条SQL语句是从学生表里查询了姓名,学号,性别,但是DISTINCT的查询规则是只要有1个不同,就是符合条件的。
例: 源数据 查询结果
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)
查询结果:101,102
3、SUBSTR用法:SUBSTR(字符串,起始位置,截取长度),默许查找顺序从左到右,当起始位置为负数的时候,从右侧开始查找。
SELECT SUBSTR('slighthost.com' , 0 , 1) AS M FROM DUAL //返回结果是s ,从字符串的第1个位置开始截取长度为1的字符串。
SELECT SUBSTR('slighthost.com', 1, 1) AS M FROM DUAL //返回结果是s,0和1都表示截取的开始位置为第1个字符。
SELECT SUBSTR('slighthost.com' , 14, 1) AS M FROM DUAL //返回结果是m,从最后1个字符开始截取。
SELECT SUBSTR('slighthost.com' , ⑴, 1) AS M FROM DUAL //返回结果是m,⑴表示从最后1个字符开始截取。
SELECT SUBSTR('slighthost.com' , ⑻, 3) AS M FROM DUAL //返回结果是hos,⑻表示从右到左数的第8个字符开始截取。
4、INSTR用法:INSTR(源字符串,要查找的字符串,从第几个字符开始,要找到第几个匹配的序号),查找顺序与SUBSTR相同。
SELECT INSTR('collaboration floor','or',1,2) AS M FROM DUAL // 返回结果是18
SELECT INSTR('collaboration floor','or',⑴,2) AS M FROM DUAL // 返回结果是7
SELECT SUBSTR('collaboration floor' , INSTR('collaboration floor','or',⑴,2) , 3 ) FROM DUAL //返回结果是ora
5、MERGE INTO用法:
在数据操作时,有时可能需要将1个数据表的某些字段添加或更新到另外一张数据表里,这时候就有1个高效力的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) //这条语句是说明两个表拷贝的连接条件
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)