① where 子句里面根據傳入參數 決定使用哪一個條件
SQL> select 1 from dual where decode(1,1,1,0)=1;
SQL> select 1 from dual where (case when 1=1 then 1 else 0 end) = 1;
② 排序
使用什么排序?有三種方式
1.使用別名作為排序字段
2.使用表達式作為排序字段??
3.使用字段位置作為排序字段 SELECT PCOILS_ID,P.WEIGHT, P.LENGTH,P.WIDTH FROM PRODCOILS P? ORDER BY 3 DESC
?
③ SQL語句執行順序
- FROM: 對FROM子句中的前兩個表執行笛卡爾積(Cartesian product)(交叉聯接),生成虛擬表VT1
- ON: 對VT1應用ON篩選器。只有那些使<join_condition>為真的行才被插入VT2。
- OUTER(JOIN): 如 果指定了OUTER JOIN(相對于CROSS JOIN 或(INNER JOIN),保留表(preserved table:左外部聯接把左表標記為保留表,右外部聯接把右表標記為保留表,完全外部聯接把兩個表都標記為保留表)中未找到匹配的行將作為外部行添加到 VT2,生成VT3.如果FROM子句包含兩個以上的表,則對上一個聯接生成的結果表和下一個表重復執行步驟1到步驟3,直到處理完所有的表為止。
- WHERE: 對VT3應用WHERE篩選器。只有使<where_condition>為true的行才被插入VT4.
- GROUP BY: 按GROUP BY子句中的列列表對VT4中的行分組,生成VT5.
- CUBE|ROLLUP: 把超組(Suppergroups)插入VT5,生成VT6.
- HAVING: 對VT6應用HAVING篩選器。只有使<having_condition>為true的組才會被插入VT7.
- SELECT: 處理SELECT列表,產生VT8.
- DISTINCT: 將重復的行從VT8中移除,產生VT9.
- ORDER BY: 將VT9中的行按ORDER BY 子句中的列列表排序,生成游標(VC10).
- TOP: 從VC10的開始處選擇指定數量或比例的行,生成表VT11,并返回調用者。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
