日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
DB2公共表表達式的用法

DB2公共表表達式屬于臨時表,下面就為您詳細介紹DB2公共表表達式的使用方法,希望可以讓您對DB2公共表表達式有更深的認識。

創(chuàng)新互聯(lián)建站是專業(yè)的石柱土家族網(wǎng)站建設公司,石柱土家族接單;提供網(wǎng)站制作、成都網(wǎng)站設計,網(wǎng)頁設計,網(wǎng)站設計,建網(wǎng)站,PHP網(wǎng)站建設等專業(yè)做網(wǎng)站服務;采用PHP框架,可快速的進行石柱土家族網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!

DB2使用公共表表達式

DB2公共表表達式是一個本地臨時表,可以在一條 SQL 語句中引用多次。這個臨時表只能存在于定義它的 SQL 語句的生命周期內(nèi)。每次公共表表達式被引用時,其結果都是相同的。臨時表是在 SQL 語句中用 WITH 子句定義的。下面是具體的語法:

WITH AS ( FROM
 
是數(shù)據(jù)庫中的一個表,也可以是由一個包括 WITH 子句的 SQL 語句定義的 。 下面是一個例子:

 
 
 
  1. WITH PROD_QUANTITY AS
  2. (SELECT PRODUCT_ID, SUM (QUANTITY) AS QUANTITY
  3.     FROM CUSTOMER_ORDER_ITEM
  4.     GROUP BY PRODUCT_ID),
  5. TOTALS AS
  6. (SELECT -1 AS PRODUCT_ID, SUM(QUANTITY) AS TOTAL)
  7. SELECT PRODUCT_ID, QUANTITY 
  8. FROM PROD_QUANTITY
  9. UNION
  10. SELECT PRODUCT_ID, TOTALS
  11. FROM TOTALS
  12. ORDER BY 1 DESC

在上述例子中,prod_quantity 被定義為一個公共表表達式。它與一個名為 totals 的公共表表達式一起使用。最終的 SELECT 語句將從兩個公共表表達式中進行選擇。

下面看另一個例子:

 
 
 
  1. WITH
  2. PAYLEVEL AS                                                 
  3.     (SELECT EMPNO, EDLEVEL, YEAR(HIREDATE) AS HIREYEAR,           
  4.         SALARY+BONUS+COMM AS TOTAL_PAY                                     
  5.         FROM EMPLOYEE                                                         
  6.         WHERE EDLEVEL > 16),                                                       
  7. PAYBYED (EDUC_LEVEL, YEAR_OF_HIRE, AVG_TOTAL_PAY) AS         
  8.     (SELECT EDLEVEL, HIREYEAR, AVG(TOTAL_PAY)                  
  9.          FROM PAYLEVEL                                            
  10.          GROUP BY EDLEVEL, HIREYEAR)
  11. SELECT EMPNO, EDLEVEL, YEAR_OF_HIRE, TOTAL_PAY, DECIMAL(AVG_TOTAL_PAY,7,2)
  12.     FROM PAYLEVEL, PAYBYED                                             
  13.     WHERE EDLEVEL = EDUC_LEVEL                                        
  14.         AND HIREYEAR= YEAR_OF_HIRE                              
  15.         AND TOTAL_PAY < AVG_TOTAL_PAY     

這個公共表表達式包含了 PAYLEVEL。這個結果表包括員工編號、該員工被雇年份、該員工的總工資以及該員工的受教育程度。只需要包括受教育程度大于 16 的那些員工的記錄。

該列表還包括一個名為 PAYBYED(“pay by education” 的縮寫)的公共表表達式。它通過使用 PAYLEVEL 表來確定受教育程度、被雇年份和同年被雇的具有同等受教育程度的員工的平均工資。由這個表中得到的列的列名(例如 EDUC_LEVEL)與選擇列表中使用的列名不同。

最后,我們得到能夠產(chǎn)生所需結果的實際查詢。該查詢連接兩個表(PAYLEVEL、PAYBYED),確定工資低于同年雇用的所有員工平均工資的員工。注意,PAYBYED 是基于 PAYLEVEL 的,所以在整個語句中,PAYLEVEL 實際上被訪問了兩次。在這兩次中,計算查詢時都用到了同一組行。

在定義一個公共表表達式之后,就可以像使用其他表一樣 SQL 語句中使用它??梢匀我獯蔚厥褂霉脖肀磉_式。甚至可以在之前創(chuàng)建的公共表表達式的基礎上,再創(chuàng)建一個公共表表達式。


本文題目:DB2公共表表達式的用法
文章位置:http://www.dlmjj.cn/article/dpcsopo.html