Oracle函数
merge into
merge into用法形式:
MERGE INTO 表1 USING 表2 on 表1.列=表2.列 --- 判断表1和表2是否满足on中的判定条件;表1和表2也可以更换为查询语句
WHEN MATCHED THEN --- 满足执行UPDATE操作
UPDATE SQL ....
WHEN NOT MATCHED THEN --- 不满足执行INSERT操作(可省略)
INSERT SQL ...
例如:表1为商品表,表2为折扣表,现在要求:如果商品表中的商品在折扣表中,则将商品表中的价格更改为折扣价格
MERGE INTO T_shopping S USING T_discount D ON S.goodID=D.goodID
WHEN MATCHED THEN
UPDATE SET S.price=D.price;
commit;
row_number() over
row_number() over用法形式:
ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN) --从1开始,为按组排序的每条记录添加一个序列号 只能用于select和order by子句中
-- 形式1
ROW_NUMBER() OVER(ORDER BY COLUMN) -- 不分组排序
-- 形式2
ROW_NUMBER() OVER(PARTITION BY COL1 ORDER BY COL2) -- 表示根据COL1分组,在分组内部根据COL2进行排序
与ROW_NUM的区别:ROW_NUM取得的序列是从0开始的,而ROW_NUM() 取得的序列从1开始
wmsys.wm_concat()
wmsys.wm_concat()用法形式
wmsys.wm_concat(column) --- 进行字段合并
表:t_emp
执行查询语句:
SELECT "NUM", wmsys.wm_concat("ename"|| ',') enames from "t_emp" GROUP BY "NUM"; --- 在函数内,可进行字符串拼接
结果:
STDDEV_POP()、STDDEV()、STDDEV_SAMP()
参考链接:https://blog.csdn.net/wen_demon/article/details/34852333