比较复杂sql语句集

---减集查未绑定关系的数据sql------tablename(主表)---t_con_table_name(关联表)

select * from tablename where tableid in(
select tableid from tablename
except
select tableid
from t_con_table_name  where type = '3'
);

-----自关联查询-------查询当前id的所有父级信息以及自己信息

with RECURSIVE r as
(SELECT * FROM  tablename where id='3718'
 UNION ALL select t.* from tablename t join r on t.id=r.parentid)
select * from r

--------查询id为3718的所有子节点信息以及自己信息

WITH RECURSIVE r AS(
   SELECT *
   FROM
   tablename
   WHERE 1=1
     and id='3718'
   UNION ALL
   SELECT
   t.*
   FROM
   tablename t,
   r
   WHERE
   t.parentid = r.id
   )SELECT * FROM r

-----ROW_NUMBER() OVER函数的基本用法:语法:ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN)

需求:根据部门分组,显示每个部门的工资等级

实现如下SQL脚本:

SELECT *, Row_Number() OVER (partition by deptid ORDER BY salary desc) rank FROM employee  ( where top=1-------如果加上top=1,可以实现去重复功能)

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值