Oracle表的常用查詢實驗(六)

2021-08-27 15:40:05 字數 808 閱讀 2564

1.問題描述:

為什麼第乙個sql有資料,第二個sql沒有資料?

sql1:

select t.*

from alx_material_types_intf_v t

where t.material_level = 3

and t.material_type not in

(select a.parent_type from alx_material_types_intf_v a); --無資料

sql2:

select t.*

from alx_material_types_intf_v t

where t.material_level = 3

and t.material_type not in

(select a.parent_type from alx_material_types_intf_v a where a.parent_type = t.material_type); --有資料

2.需求分析:

對比兩個sql語句,區別在於第二個sql語句多出了『where a.parent_type = t.material_type』。

3.解答過程:

第一句sql的子查詢select a.parent_type from alx_material_types_intf_v a 中parent_type有空值的話,not in (null) 的結果是null,不是true。所以沒有資料、

第二個sql裡面,因為多了個「= 」的條件,導致無論如何結果集內不會出現空值。

Oracle表的常用查詢實驗(五)

1.問題描述 test表中有id 人員編號 a 考核標準 b 實際得分 c 課程編號 四個字段,乙個id可能會有多個科目的評分,如果乙個id中存在a b,則合格,求合格的人員編號。2.需求分析 要得到的結果為 id 是否合格 1011 合格 1012 合格 1013 合格 1014 不合格 1015...

Oracle常用表查詢

檢視所有的資料檔案 select from dba data files 檢視當前使用者 select from user users 檢視所有使用者 select from all users 檢視使用者或角色系統許可權 select from user sys privs 檢視角色所包含的許可權...

oracle 常用樹形結構的表查詢

start with.connect by prior 詳解 oracle 中的select 語句可以用 start with.connect by prior 子句實現遞迴查詢,connect by 是結構化查詢中用到的,其基本語法是 select columnname1 columnname2,...