程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SyBase數據庫 >> SyBase教程 >> union all的執行順序

union all的執行順序

編輯:SyBase教程


union all的執行順序   IQ下面做應用開發的時候,遇到一個好玩的事情:    www.2cto.com   情況1中,發現一個規律,union all 中執行順序是:  以第一個union all 的select 語句(如 紅色標記)為分界線。  先從最後union all的select(如藍色標記)開始倒序輸出到 紅色標記的select子句,  再輸出第一個select子句  最後輸出紅色標記的select子句    Java代碼          select '1' AREA_NAME          union all    [color=red]select '3' AREA_NAME [/color]          union all           select distinct  '2'AREA_NAME          from DW.AREA          where (area_type_id =2 and  up_area_code = '00' ) or  up_area_code = '-1'           union all           [color=blue]select '4' AREA_NAME[/color]     結果如下:  Java代碼   AREA_NAME   4   2   1   3     Java代碼         select '1' AREA_NAME         union all          select distinct  '2'AREA_NAME         from DW.AREA         where (area_type_id =2 and  up_area_code = '00' ) or  up_area_code = '-1'                 union all    select '3' AREA_NAME          union all          select '4' AREA_NAME     結果如下:  Java代碼   AREA_NAME   4   3   1   2     Java代碼         select '1' AREA_NAME         union all          select distinct  '2'AREA_NAME         from DW.AREA         where (area_type_id =2 and  up_area_code = '00' ) or  up_area_code = '-1'                 union all    select '3' AREA_NAME          union all          select '4' AREA_NAME          union all          select distinct  '5' AREA_NAME         from DW.AREA         where (area_type_id =2 and  up_area_code = '00' ) or  up_area_code = '-1'       Java代碼   AREA_NAME   5   4   3   1   2     這裡面表DW.AREA為真實表。    情況2,如果下面這種情況下:  Java代碼         select '1' AREA_NAME          union all    select '2' AREA_NAME          union all           select '3' AREA_NAME          union all           select '4' AREA_NAME     Java代碼   AREA_NAME   '1'   '4'   '3'   '2'     Java代碼   select '2' AREA_NAME   union all    select '1' AREA_NAME   union all    select '4' AREA_NAME   union all    select '3' AREA_NAME     Java代碼   AREA_NAME   '2'   '3'   '4'   '1'     如union all的表不存在的時候,即單純select子句,輸出順序就變成了:  1.第一select 輸出。  2.此後從最後一個select倒序輸出。    上述為我目前看到的現象。  具體什麼原因,等後面有時間了的話,會好好探究的。  估計和cursor生成的信息有關。mark 一下。  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved