select创建表
oracle: create table table2 as (select * from table1);
sqlserver: select * into table2 from table1;
递归查询
oracle: connect by
select ... from <TableName>
where <Conditional-1>
start with <Conditional-2>
connect by <Conditional-3>
sqlserver: cte
;with cte(id, name, pid, lvl) as
(
select t.*, 0 lvl from t where pid=0
union all
select t.*, cte.lvl+1 lvl from t, cte where t.pid = cte.id
)
select
case
when lvl=0 then name
else REPLICATE(' ', lvl) + '└' + name
end,
id,
pid
from cte
;
正则
oracel: regexp_substr, regexp_like, regexp_instr, regexp_replace, regexp_count
sqlserver: 木有
子查询
oracle: select * from (select * from table1);
sqlserver: select * from (select * from table1) t;
组内排序(一致)
oracle: row_number() over (partition by ... order by ...)
sqlserver: row_number() over (partition by .. order by ...)
查询结果插入(一致)
insert into table1(col1, col2, col3) select col1, col2, col3 from table2;