--查找当前用户所在部门的所有下级包括当前部门 with cte as ( as lvl from Department union all from cte c inner join Department d on c.Id = d.Pid --id 部门编号,PID 上级部门编号 ) select * from cte 查找当前用户所在部门的所有上级包括当前部门 with cte as ( as lvl from Department union all from cte c inner j
--通用sql select deptno, ename, sal from emp e1 where ( ) from emp e2 where e2.deptno=e1.deptno and e2.sal>=e1.sal ) /*这里的数值表示你想取前几名*/ order by deptno, sal desc; --oracle查询 select * from (select deptno,ename,sal,row_number() over (partition by deptno o
WITH cte_name AS ( --Anchor member is defined ' UNION ALL --Recursive member is defined referencing cte_name select a.PCY_Name,a.PCY_ID,a.PCY_Parent, a.PCY_Code,a.PCY_Status from PB_Code_MaterType a inner join cte_name c on a.PCY_Parent=c.PCY_ID ) --
)) INSERT INTO @t SELECT 'AAA,BBB,CCC' SELECT * FROM @t ;WITH mycte AS ( ,mend,num FROM @t UNION ALL ,num FROM mycte WHERE mend<=LEN(sentence) ) ),,,'') sentence FROM mycte 如果由excel中直接复制过来的,可能在没一个项前会有换行符,替换方法为 replace char(13) + char(10) 更简单的可以转换为xm
表结构是这样的 部门 上级部门 A BB CC DA AB BC C 求一条SQL语句,根据A查其上级部门,查询结果为上级部门BCD ================================================= 用函数create table tb (部门 varchar(20),上级部门 varchar(20)) insert into tb
树形结构部门的 sqlserver 排序 因为要实现部门排序功能,而且要考虑部门的层级,直接用 sql 排序是不行的,所以写个 sql function 来支持. 首先部门表:company CREATE TABLE company( CompanyId id NOT NULL, CompanyName ) NOT NULL ) 记录部门层级结构的表,如果部门没有上级部门则在这张表中不会有记录: CREATE TABLE company_report( CompanyId id NOT NULL
1.SQL:复制数据库某一个表到另一个数据库中 SELECT * INTO 新表 FROM 旧表 (将旧表的结构和数据都复制到新表,不用事先创建新表) SELECT * INTO 新表 FROM 旧表 where 1=2(只复制结构不复制数据) INSERT INTO 旧表 SELECT * FROM 新表(在新表已经存在的情况下,将旧表数据插入新表)2.将某一条记录排在第一位. order by(case processId when 273 then 0 else 1 end), newi
部门表(SM_DEPT) 字段名称 数据类型 是否主键 注释 DEPT_ID NUMBER Y 部门ID PARENT_DEPARTMENT_ID NUMBER N 上级部门 DEPARTMENT_NAME VARCHAR2(50) N 部门名称 用户部门中间表(SM_USER_DEPT) 字段名称 数据类型 是否主键 注释 ID NUMBER Y 主键 DEPT_ID NUMBER N 部门ID USER_ID NUMBER N 用户ID 用户表(SM_USER) 字段名称 数据类型 是否主键