专题:SQL使用技巧——实践是检验SQL函数的唯一标准场景描述一.Orcale递归查询startwith二.Hive递归查询三.星环TDH递归查询startwith四.帆软配置递归查询场景描述场景一:员工信息表,根据某一员工编号查找其上级及上级的上级,直至最高权力者;或者下级及下级的下级,直至其管理下的最基层员工。场景二:机构树,查询某一机构所对应的上级机构,直至最高机构;或者下级机构直至最末级机构场景三:号码更换(银行卡换号不换卡),给出某一号码,查找该卡历史所有换号信息,给出的号码可能是历史的、也可能是最新的。…一.Orcale递归查询startwith构建表并插入数据,orcale的in
ORACLE数据字典视图的种类分别为:USER,ALL和DBA.USER_*:有关用户所拥有的对象信息,即用户自己创建的对象信息ALL_*:有关用户可以访问的对象的信息,即用户自己创建的对象的信息加上其他用户创建的对象但该用户有权访问的信息DBA_*:有关整个数据库中对象的信息(这里的*可以为TABLES,INDEXES,OBJECTS,USERS等。)1、查看所有用户select*fromdba_user;select*fromall_users;select*fromuser_users;2、查看用户系统权限select*fromdba_sys_privs;select*fromall_s
这是sql--获取多条结果集中的第一条,通常会排下序之类的,随你方便,如果你不排序直接用括号里的就行select*from (select*fromtable where1=1 orderbyvalue1)whererownum=1;这里解释一下,为什么外边要多套一层select,我猜你写的sql应该是select*fromtablewhererownum=1orderbyvalue1;但是你取到的应该不是你orderby出来的第一条,因为sql执行顺序并不是真的从后往前读,代码会先读where而不是orderby,所以whererownum=1的时候,实际上它就查出来一条,所以orderby
这是sql--获取多条结果集中的第一条,通常会排下序之类的,随你方便,如果你不排序直接用括号里的就行select*from (select*fromtable where1=1 orderbyvalue1)whererownum=1;这里解释一下,为什么外边要多套一层select,我猜你写的sql应该是select*fromtablewhererownum=1orderbyvalue1;但是你取到的应该不是你orderby出来的第一条,因为sql执行顺序并不是真的从后往前读,代码会先读where而不是orderby,所以whererownum=1的时候,实际上它就查出来一条,所以orderby