ROW_NUMBER函数
ROW_NUMBER() OVER(PARTITION BY column1 ORDER BY column2 DESC)
-- 根据column1分组按column2降序排序生成序号,序号由小到大,会生成一个唯一的序号
-- 例如column2中有两列值都为1,那他们的序号会有一个在上一个在下
ROW_NUMBER() OVER(ORDER BY count(ID) DESC)
-- 结合分组之后使用,按分组之后的count数量排序
LISTAGG
LISTAGG(column, delimiter) WITHIN GROUP (ORDER BY column1, column2, ...);
-- column 要聚合的列
-- delimiter 聚合分割的符号
-- WITHIN GROUP (ORDER BY column1, column2, ...)聚合的顺序
-- 未添加分组,将按照id升序聚合生成字符串
SELECT LISTAGG('''' || Id || '''',',') WITHIN GROUP (ORDER BY ID) FROM TABLE_NAME WHERE id < 1000;
EXISTS
SELECT column1, column2, ...
FROM table_name
WHERE EXISTS (子查询);
-- 子查询有结果则有table_name值
-- 有多少条 table_name记录,只查询就会执行多少次
Oracle版本
SELECT * FROM v$version;