一些經典的SQL

2021-06-05 22:05:17 字數 842 閱讀 2607

表結構:部門deptid,父級部門parentdeptid,。。。。資料庫的每一條記錄都記錄了自身id和父級部門id,現在要從某個部門查詢其下屬部門生成一棵部門關係樹,sql如下:

select so.orgid,so.parentdeptid,so.orgname from sys_orginfo so start with so.orgid=*** connect by prior so.orgid=so.parentdeptid;

***表示查詢的部門id。

如果知道某部門的id,想查詢出其父級部門以及父級的父級,也就是進行回溯找到根,sql如下:

select so.orgid,so.parentdeptid,so.orgname from sys_orginfo so start with so.orgid=*** connect by prior so.parentdeptid=so.orgid;

***表示從那個部門開始進行回溯

兩條sql的區別就是connect by的條件交換一下。

回溯結果查出來的是父級關係的多行資料(oracle列轉行,列合併),現在想把部門連線到一行顯示,比如c的父級是b,b的父級是a,現在想拼成a/b/c sql如下:

select replace(wmsys.wm_concat(orgname),',','/') from (select so.orgid,so.parentdeptid,so.orgname from sys_orginfo so start with so.orgid=*** connect by prior so.parentdeptid=so.orgid) ;

oracle的wmsys包下面的wm_concat()函式能把指定的列資料用逗號連線成一行。

Oracle的一些經典SQL面試題

例項1 測試資料 create table nba team varchar2 20 year number 4 sql select from nba team year 活塞 1990 公牛 1991 公牛 1992 公牛 1993 火箭 1994 火箭 1995 公牛 1996 公牛 1997...

Html 一些經典

標籤用於蒐集使用者資訊。根據不同的 type 屬性值,輸入字段擁有很多種形式。可以是文字字段 核取方塊 掩碼後的文字控制項 單選按鈕 按鈕等等。text 文字區域 readonly屬性 是否唯讀。password 密碼區域,輸入的文字以 展示 checkbox 核取方塊 checked屬性 是否選中...

轉的一些經典語句

eric推薦 發生一件事,如果你 喜歡它,那麼享受它。不喜歡,那麼避開它。避不開,那麼改變它。改不了,那麼接受它。改變觀念,你就能接受它。lion推薦 複雜的事情要簡單做。簡單的事情要認真做。認真的事情要重複做。重複的事情要創造性地做。blue推薦 人生幸福三訣 第一是 不要拿自己的錯誤來懲罰自己 ...